为什么如下代码会打印 6 个 6
let i = 0
for(i = 0; i<6; i++){
setTimeout(()=>{
console.log(i)
},0)
}
setTimeout是异步任务,会在执行栈任务结束后在再执行,此时全局变量i的值已经变为6.
写出让上面代码打印 0、1、2、3、4、5 的方法
for (let i = 0; i < 6; i++) {
setTimeout(() => {
console.log(i);
}, 0);
}
除了使用 for let 配合,还有什么其他方法可以打印出 0、1、2、3、4、5
for (i = 0; i < 6; i++) {
!(function (x) {
setTimeout(() => {
console.log(x);
}, 0);
})(i);
}