循环运行永远

时间:2013-12-17 01:34:49

标签: javascript while-loop

我正在创建一个基本的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);
 }
}

2 个答案:

答案 0 :(得分:9)

原因是因为你正在进行赋值(=)而不是比较(===),变量day1的值永远保持为358。你也可能已经注意到它记录“今天是圣诞节”总是因为赋值而且结果是一个非零值,这使得它总是真正的。

更改

if (day1 = 358) {

if (day1 === 358) {

只是添加你也可以使用==同时进行类型强制(在你的情况下不需要),但是===是一个严格的相等比较,它是在大多数情况下推荐使用。

答案 1 :(得分:6)

当你说

if (day1 = 358) {

您不是在比较这些值,而是在每次迭代中将358分配给day1。所以,价值永远不会改变。这就是为什么它会遇到无限循环。要解决这个问题,

像这样使用比较运算符

if (day1 === 358) {