【发布时间】:2012-06-03 16:01:12
【问题描述】:
由于这一小段代码,我得到了一个无限循环。如果我在循环之前将 var i 声明为任何值(即 var i = 0),它就会变得固定,我不知道为什么。熟悉javascript错综复杂的人可以向我解释这里发生了什么吗?
for (num = 1; num <= 2; num++) {
for (i = 1; i < num; i++) {
console.log("hi");
}
}
【问题讨论】:
-
这里没有无限循环。打印一次“hi”(Chrome 19.0.1084.52 m)
-
对我来说似乎运行良好。没有无限循环!!!
-
在发帖之前您是否简化了示例?给出的代码(没有上下文)运行良好。
-
也许有一个
i在其他地方声明并在你的循环的实际主体中进行了修改? -
我已经弄清楚出了什么问题,这不是 for 循环本身的无限循环,而是包含它的函数的无限调用。这是因为我的函数在一个也使用 var i 的 for 循环中被调用,并且我的函数中的 for 循环不断修改该值,因此调用我的函数的 for 循环永远不会退出。
标签: javascript for-loop infinite-loop