var ary=[];
for (var a = 0; a < 10; a++) {
ary[a] = function () {
console.log(a);
};
}
console.log(a);//10
ary[2]();//10
var ary=[];
for (let i = 0; i < 10; i++) {
ary[i] = function () {
console.log(i);
};
}
console.log(i);// 报错ReferenceError: i is not defined,计数器i只在for循环体内有效,在循环体外引用就会报错。
ary[2]();//2
通过var定义的变量,作用域是整个封闭函数,是全域的 。通过let定义的变量,作用域是在块级或是子块中。 var ary=[]; for (var a = 0; a &lt; 10; a++) { ary[a] = function () { console.log(a); }; } console.log(a);//10 ary[2]();//10 var ary=[]...