JS 函数的执行时机

JS函数的调用时机

  1. 以下代码为什么会打印出6个6
let i=0
for(i=0;i<6;i++){
setTimeout(()=>{
console.log(i)
},0)
}

因为setTimeout的意思是稍后执行,也就是在等for循环结束之后再执行console.log(i),当for结束循环的时候i等于6,且只有1个i,所以打印出6个6
2、如何让以上代码打印出0--6

for(let i=0;i<6;i++){
setTimeout(()=>{
console.log(i)
},0)
}

因为JS在for和let一起用的时候会在每次循环的时候多创建一个i,每次循环都会重新创建一个i,所以会打印出0,1,2,3,4,

推荐阅读更多精彩内容