JS

for (var i = 0; i < 5; i++) {
    setTimeout(function() {
        console.log(i);
    }, 1000);
}
//这个例子执行完输出什么结果?

//答案是 5,5,5,5,5

//如果想要输出0,1,2,3,4改怎么实现?
//其中一种方案就是把var换成let就可以了。let的块级作用域在这里就体现出来了。

for (let i = 0; i < 5; i++) {
    setTimeout(function() {
        console.log(i);
    }, 1000);
}
原文地址:https://www.cnblogs.com/cczhao06/p/12880531.html