【发布时间】:2018-06-08 17:02:06
【问题描述】:
我知道 let 具有块范围,而 var 具有功能范围。但是我不明白在这种情况下,使用 let 将如何解决问题
const arr = [1,2,3,4];
for (var i = 0; i < arr.length; i++) {
setTimeout(function() {
console.log(arr[i])
}, 1000);
} // Prints undefined 5 times
const arr = [1,2,3,4];
for (let i = 0; i < arr.length; i++) {
setTimeout(function() {
console.log(arr[i])
}, 1000);
} // Prints all the values correctly
【问题讨论】:
标签: javascript closures var let