let i = 0;
for(i = 0; i<6; i++){
setTimeout(()=>{
console.log(i)
},0)
}
//6,6,6,6,6,6
为什么会打印 6 个 6 ?
由于 JS 是单线程的,同一时间JS只能做一件事.都要排队等待执行

setTimeOut可以理解为先读取延迟时间,再把setTimeOut内的函数放在一个等待执行区,等呆会儿执行console.log(i), 等for 循环一遍之后,i 的值已经 i++到了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 的 i 定义
或者
let i = 0;
for(i = 0; i<6; i++){
setTimeout((i)=>{
console.log(i)
},0, i)
}
//给时间的后面再加个参数 i