有人可以向我解释为什么以下代码返回无限循环而不是重新定义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
。
显然我在这里遗漏了一些东西。
答案 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)”,
如果它再次打印无限,让它知道我..