为什么这个javascript循环无限回归?

时间:2014-04-01 04:31:59

标签: javascript loops while-loop infinite

有人可以向我解释为什么以下代码返回无限循环而不是重新定义foo

var foo = 2;

while (foo = 2) {
   foo = 3;
}

console.log('foo is ' + foo);

当然,第一次循环是因为foo确实等于2。但是,我不明白为什么要继续跑步;第一次通过foo之后现在应该设置为3,参数应该返回false,console.log('foo is ' + foo);应该打印foo is 3

显然我在这里遗漏了一些东西。

3 个答案:

答案 0 :(得分:2)

while (foo == 2) {
   foo = 3;
}

你错过了一个等号(或两个,如果你想要更严格的检查)

while (foo === 2) {
   foo = 3;
}

答案 1 :(得分:2)

您将值2分配给foo,而不是在此处的条件中进行比较:

while (foo = 2)

将其更改为:

while (foo == 2)

答案 2 :(得分:0)

打开循环时,您可能会错过“while(foo == 2)”,

如果它再次打印无限,让它知道我..