JS 函数的执行时机

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

使用 setTimeout的意思就是说尽快执行 ,尽快执行就是在手头的事情做完之后。那么这里就是在 for 循环之后打印出 i,所以也就是 6 个 6。

  • 让上面代码打印 0、1、2、3、4、5 的方法

只需要把变量的声明写在循环里就可以打印出0、1、2、3、4、5

  
     for(let i = 0; i<6; i++){
       setTimeout(()=>{
         console.log(i)
       },0)
     }
  • 除了使用 for let 配合,还可以什么使用可以打印出 0、1、2、3、4、5

console.log放在函数中调用打印出

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