为什么,如果我在非空数组上执行的另一个for循环中的空数组上执行for循环,我会得到一个浏览器阻塞无限循环?
for(var i=0; i<links.length;i++)
{{1}}内的代码甚至没有评估,为什么会出现这种情况呢?
答案 0 :(得分:3)
当第二个循环执行时,您正在重置i
变量(它在第一个1
循环中的第一个循环之后等于for
)到{{1 }}。第一个循环中的情况相同,当第二个循环完成0
循环(并且first
具有i
值)时,它被重置为1
再次通过第一个循环。等等......直到世界结束。
Hovewer - 就像Ori指出的那样 - 如果您使用0
在循环中声明let
变量,一切都会顺利进行。
i
&#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]);
不会被评估