JS函数的执行时机

【JS函数的执行时机】案例一

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

  • 以上代码会打印出6个6, 原理是:setTimeout会等到当前代码的for循环执行完了,再去执行console.log(i)
  • 而for循环执行完之后,i已经是6了
  • 所以会打印出6个6
案例二
如果希望在for循环使用settimeout时,能够依次打印出0,1,2,3,4,5
用Let就可以了,let 会单独创建一个作用域 相当于有6个 i
for(let i = 0; i<6; i++){ setTimeout(()=>{ console.log(i) },0) }

    推荐阅读