有人解释一下这个(var 和 let in for 循环之间的行为差异)吗?
经典面试题(结束语):
let a = [];
for (var i=0; i<10; i++) {
a[i] = function() {
console.log(i,);
}
}
a[0](); // 10
a[1](); // 10
Run Code Online (Sandbox Code Playgroud)如果我们使用让:
let a = [];
for (let i=0; i<10; i++) { // var => let
a[i] = function() {
console.log(i);
}
}
a[0](); // 1
a[1](); // 2
Run Code Online (Sandbox Code Playgroud)是的,我在使用“让”时正常并且符合预期。我想到的第一个想法是 let 不支持关闭。但不,它支持。(随后在 Chrome 上对其进行了测试):
function bb() {
let b = 1;
return function() {
console.log(b);
}
}
bb()(); // 1, means …Run Code Online (Sandbox Code Playgroud)