为什么如果我嵌套执行一个空数组在另一个for循环在一个非空数组上执行for循环,我得到一个浏览器阻止无限循环作为结果?在非空数组中循环一个空数组会产生一个无限循环:为什么?
var links = [];
var anchors = ['a', 'b', 'c'];
// not empty loop
for(var i=0; i<anchors.length;i++) {
console.log(anchors[i]);
// empty loop
for(var i=0; i<links.length;i++) {
console.log(links[i]);
}
}
for(var i=0; i<links.length;i++)
里面的代码甚至没有评估,所以为什么这种行为?
为什么呢?因为“让”让变量循环范围? – AmintaCode
@AmintaCode因为'var'的作用域是最近的函数块(在你的情况下,它像一个全局变量,因为你没有把你的代码包装到一个函数体中)并且'let'的作用域被限定在最近的封闭块。 –