我正在创建一个基本的while循环,由于某种原因它无限运行。我想知道它不会在var“days”的长度停止。
var day1 = 1
var days = 365
while (day1 <= days) {
day1++;
if (day1 = 358) {
console.log('today is christmas');
} else {
console.log("today is day " + day1);
}
}
答案 0 :(得分:9)
原因是因为你正在进行赋值(=)而不是比较(===),变量day1
的值永远保持为358。你也可能已经注意到它记录“今天是圣诞节”总是因为赋值而且结果是一个非零值,这使得它总是真正的。
更改
if (day1 = 358) {
到
if (day1 === 358) {
只是添加你也可以使用==
同时进行类型强制(在你的情况下不需要),但是===
是一个严格的相等比较,它是在大多数情况下推荐使用。
答案 1 :(得分:6)
当你说
时if (day1 = 358) {
您不是在比较这些值,而是在每次迭代中将358
分配给day1
。所以,价值永远不会改变。这就是为什么它会遇到无限循环。要解决这个问题,
像这样使用比较运算符
if (day1 === 358) {