有人可以解释为什么这个结果是无限循环吗?
var name = true;
var soloLoop = function () {
while (name) {
console.log(name);
name = false;
}
};
soloLoop();
答案 0 :(得分:6)
当您在全局范围内声明变量时,正如您在此处所做的那样,它们实际上包含在全局对象的属性中,在本例中为window
。 window.name
is something that already exists,只能设置为字符串。
当你这样做时:
var name = true;
实际上是将window.name
设置为"true"
。 name = false
也是如此 - 它将其设置为"false"
。由于"false"
是“真实的”,while
循环永远不会退出。