一,解释为什么如下代码会打印 6 个 6
let i = 0
for(i = 0; i<6; i++){
setTimeout(()=>{
console.log(i)
},0)
}
因为seTimeout的意思是,马上就执行或者尽快执行,setTimeout 是一个异步的函数, 那么这段代码的执行就变成了, 先走完整个循环,这时 i 已经变成了 6,才开始执行 6 个 console.log(i),所以最终只会打印出 6 个 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
let i=0
for(i = 0; i<6; i++){
setTimeout((value)=>{
console.log(value)
},0,i)
}
通过 setTimeout 的第三个参数,将i传进去