Javascript 无限循环
Javascript Infinite For Loop
我正在学习 javascript 中的循环并尝试一些我编写了以下基本代码的东西。
此代码生成一个无限循环,只在控制台无限期地打印数字 4。
问题是我不明白这背后的逻辑以及它发生的确切原因
for(let i = 0; i = 4; i++){
console.log(i);
}
i = 4
是一个表达式,它会 return 4
并且 4
是真实值,因此条件永远不会为假并且循环永远不会结束
console.log(i=4); //4
console.log(Boolean(i=4)); //true
你应该使用小于运算符
for(let i = 0; i <= 4; i++){
console.log(i);
}
在您的循环中,条件部分使用 assignment operator =
, you should use a comparison operator,例如 !==
。另请注意,条件应为假才能退出 for 循环。所以 !==
是(或 <=
,出于个人原因我不喜欢),而不是 ===
。
for(let i = 0; i !== 4; i++){
console.log(i);
}
所以你的代码会无限期地运行,因为 i = 4
是 truthy。它打印 4 因为 i = 4
将 4 分配给 i after increment
我正在学习 javascript 中的循环并尝试一些我编写了以下基本代码的东西。
此代码生成一个无限循环,只在控制台无限期地打印数字 4。
问题是我不明白这背后的逻辑以及它发生的确切原因
for(let i = 0; i = 4; i++){
console.log(i);
}
i = 4
是一个表达式,它会 return 4
并且 4
是真实值,因此条件永远不会为假并且循环永远不会结束
console.log(i=4); //4
console.log(Boolean(i=4)); //true
for(let i = 0; i <= 4; i++){
console.log(i);
}
在您的循环中,条件部分使用 assignment operator =
, you should use a comparison operator,例如 !==
。另请注意,条件应为假才能退出 for 循环。所以 !==
是(或 <=
,出于个人原因我不喜欢),而不是 ===
。
for(let i = 0; i !== 4; i++){
console.log(i);
}
所以你的代码会无限期地运行,因为 i = 4
是 truthy。它打印 4 因为 i = 4
将 4 分配给 i after increment