要求隔一秒打印出一个1,再隔一秒打印出个2,再隔1秒打印出个3…
废话不多说,直接上代码:
ES6
for(let i = 1; i <= 10; i++){
setTimeout(function () {
console.log(i);
}, 1000 * i);
}
ES5
for(var i = 1; i <= 10; i++){
(function (i) {
setTimeout(function () {
console.log(i);
}, 1000 * i)
})(i);
}
总结
ES6的let关键字提供了块级作用域的机制,实现起来比较方便;在ES5中,由于没有块级作用域,所以需要依赖于函数来实现块级作用域的效果。