let
和var
之间的差异与词法范围和变量提升有关。但我从未见过变量值在作为参数传递时如何变化。
示例如下:
for(let i =1; i<=5; i++){
setTimeout(
()=>{ console.log(i) },
i*1000)
}
每秒打印输出[1,2,3,4,5]。
但是在使用var
for(var i =1; i<=5; i++){
setTimeout(
()=>{ console.log(i) },
i*1000)
}
每秒打印[6,6,6,6,6]。