1.
let i = 0
for(i = 0; i<6; i++){
setTimeout(()=>{
console.log(i)
},0)
}
以上代码会打印出6个6。for循环六次,每次进入setTimeout函数,会执行尽快打印i的值。相当于定了六个闹钟,手头的事情做完之后,六个闹钟会依次响起。手头的事情,就是for循环,所以,循环结束后,i等于6,闹钟响起,执行打印i的值,因为现在i的值是6,所以会打印出6个6。
2. 如何打印出0,1,2,3,4,5
for(let i=0;i<6;i++){
setTimeout(()=>{
console.log(i)
},0)
}
把let写进for循环里,JS会在每次进入循环时,复制一份i,并把它保留在setTimeout空间里,这样,在循环结束后,就赋值出了值为0,1,2,3,4,5的六个i,然后依次打印。