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

时间:2015-09-08 17:09:01

标签: javascript infinite-loop

有人可以解释为什么这个结果是无限循环吗?

var name = true;
var soloLoop = function () {
  while (name) {
     console.log(name);
     name = false;
  }
};

soloLoop();
  • 注1 :只能在浏览器控制台中复制。
  • 注2 :仅可使用变量“name”重现。

1 个答案:

答案 0 :(得分:6)

当您在全局范围内声明变量时,正如您在此处所做的那样,它们实际上包含在全局对象的属性中,在本例中为windowwindow.name is something that already exists,只能设置为字符串。

当你这样做时:

var name = true;

实际上是将window.name设置为"true"name = false也是如此 - 它将其设置为"false"。由于"false"是“真实的”,while循环永远不会退出。