浏览器控制台中的无限循环



有人能解释一下为什么这个结果是无限循环吗?

var name = true;
var soloLoop = function () {
  while (name) {
     console.log(name);
     name = false;
  }
};
soloLoop();
  • 注1:只能在浏览器控制台中复制。
  • 注2:仅在变量"name"下可重复。

当你在全局作用域中声明变量时,就像你在这里做的那样,它们实际上被包含为全局对象的属性,在本例中是windowwindow.name是已经存在的东西,并且只能设置为字符串。

当你这样做的时候:

var name = true;

实际上是将window.name设置为"true"name = false也一样,它将其设置为"false"。因为"false"是" true ",所以while循环永远不会退出。

最新更新