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); }