let i = 0
for(i = 0; i<6; i++){
setTimeout(()=>{
console.log(i)
},0)
}
上面代码问打印出什么,答案是6个6,首先i后面只有一个值,setTimeout的意思是你去数苹果有多少个,数着数着,你妈妈问你一共有几个苹果,你告诉妈妈最终的数字就行,即让你运行完i的值,过一会马上打印出i的最终值,当i为6时,刚好满足i<6,所以循环了6次
那怎么让它打印出0,1,2,3,4,5呢?
- 方法一
for(let i = 0; i<6; i++){
setTimeout(()=>{
console.log(i)
},0)
}
只需要把let放到里面即可
- 方法二
for(let i = 0; i < 6; i++){
setTimeout(i => console.log(i), 0, i )
}
console.log(-1)