1 、为什么如下代码会打印 6 个 6
let i = 0
for(i = 0; i<6; i++){setTimeout(()=>{console.log(i)},0)
}
那是因为setTiout函数的意义是‘做完当前的事情,再去执行’0代表时间,表示做完循环立刻打印i的值,所以 i的值经过for循环已经循环到6,所以打印出6个6
2、写出让上面代码打印 0、1、2、3、4、5 的方法
for(let i=0;i<6;i++){setTimeout(()=>{console.log(i)},0)}
在循环中 let 会使i复制一份,每循环一次复制一份,所以能打印出0、1、2、3、4、5
3、除了使用 for let 配合,还有什么其他方法可以打印出 0、1、2、3、4、5?
可以用立即执行函数使循环打出 0、1、2、3、4、5
for(var i=0;i<6;i++){
setTimeout( function(){console.log(i)
}(),0)}