JS 函数的执行时机

109 阅读1分钟
  1. 解释为什么如下代码会打印 6 个 6
  2. let i = 0
    for(i = 0; i<6; i++){setTimeout(()=>{console.log(i)},0)}

    setTimeout 表示尽快完成这个命令,但它的进行需等到for循环进行完毕才可以执行,for循环执行完毕得到i=6,for循环需执行六次,所以打印6次,得到6个6。

  3. 写出让上面代码打印 0、1、2、3、4、5 的方法
  4. for(let i = 0; i<6; i++){ setTimeout(()=>{ console.log(i) },0) }
    得到0、1、2、3、4、5。