在非空数组中循环一个空数组会产生一个无限循环:为什么?

时间:2017-07-29 12:03:24

标签: javascript loops for-loop

为什么,如果我在非空数组上执行的另一个for循环中的空数组上执行for循环,我会得到一个浏览器阻塞无限循环?

for(var i=0; i<links.length;i++)

{{1}}内的代码甚至没有评估,为什么会出现这种情况呢?

3 个答案:

答案 0 :(得分:3)

当第二个循环执行时,您正在重置i变量(它在第一个1循环中的第一个循环之后等于for)到{{1 }}。第一个循环中的情况相同,当第二个循环完成0循环(并且first具有i值)时,它被重置为1再次通过第一个循环。等等......直到世界结束。

Hovewer - 就像Ori指出的那样 - 如果您使用0在循环中声明let变量,一切都会顺利进行。

&#13;
&#13;
i
&#13;
&#13;
&#13;

答案 1 :(得分:0)

好的,所以如果嵌套数组是empy,它的长度是0,所以:

AEAE80

&#34; I&#34;永远不会是0,循环将是无限的...

答案 2 :(得分:0)

因为链接数组的长度= 0.当您执行此代码时

for(var i=0; i<links.length;i++)

1)变量赋值0

2)获取links.length - 它为0。 3)因为0 < 1,

console.log(links[i]);

不会被评估