有人能解释一下为什么这个结果是无限循环吗?
var name = true;
var soloLoop = function () {
while (name) {
console.log(name);
name = false;
}
};
soloLoop();
- 注1:只能在浏览器控制台中复制。
- 注2:仅在变量"name"下可重复。
当你在全局作用域中声明变量时,就像你在这里做的那样,它们实际上被包含为全局对象的属性,在本例中是window
。window.name
是已经存在的东西,并且只能设置为字符串。
当你这样做的时候:
var name = true;
实际上是将window.name
设置为"true"
。name = false
也一样,它将其设置为"false"
。因为"false"
是" true ",所以while
循环永远不会退出。