1.解释为什么如下代码会打印 6 个 6
let i = 0
for(i = 0; i<6; i++){
setTimeout(()=>{
console.log(i)
},0)
}
答:因为setTimeout是一个异步函数,它内部的操作并不会在其被调用时立即执行,每一次循环中,它的打印任务都被放在一个队列中,只有当for循环结束后才会开始从队列中取出任务并打印i,而此时i为6了。
2. 写出让上面代码打印 0、1、2、3、4、5 的方法
for(let i =0; i<6; i++){
setTimeout(()=>{
console.log(i)
},0)
}
3.除了使用 for let 配合,还有什么其他方法可以打印出 0、1、2、3、4、5,
let i
for( i = 0; i<6; i++){
let j = i
setTimeout(()=>{
console.log(j)
},0)
}