js循环体中let和var的区别
最近遇到一个问题,一直搞不懂,希望有人给我详细解答,让我理解透彻。首先放两段代码,它们的结果不同。想知道为何不同。
let funcs = [];
for(var i = 0; i < 10; i++){
funcs.push(() => {
console.log(i);
})
}
funcs.forEach((func) => {
func(); //结果为 9 9 9 9 9 9 9 9 9
})
//我是分割线...................
let funcs = [];
for(let i = 0; i < 10; i++){
funcs.push(() => {
console.log(i);
})
}
funcs.forEach((func) => { func(); //结果为 0 1 2 3 4 5 6 7 8 9
})