let在for循环中生成块级作用域 今天在学习闭包的时候使用var声明的for循环,遇见定时器等异步代码 for (var i = 0; i < 5; i++) { setTimeout(() => { console.log(i); }, 2); } 结果输出的是5个4,因为for循环同步执行,定时器异步执行(等同步代码执行完成),所以最后i的结果为4,输出的结果也是4, 解决的办法有很多,原理基本都是使用闭包,延长变量的声明周期 for (var i <