JS 函数的执行时机

1. 解释为什么如下代码会打印 6 个 6
let i = 0
 for(i = 0; i<6; i++){ 
setTimeout(()=>{ 
console.log(i) 
},0) 
}
答:setTimeout的意思就是等一会再执行,先把上面的语句执行完了再执行console.log,也就是把for循环全部执行完,那么for循环执行完后就是6,之后就再打印6个6
 
2.写出让上面代码打印 0、1、2、3、4、5 的方法
1 for (let i = 0;i<6;i++){ 
2 setTimeout(()=>{ 
3 console.log(i) 
4 },0) 
5 }

 

3 除了使用 for let 配合,还有什么其他方法可以打印出 0、1、2、3、4、5
1 for(let i = 0; i<6; i++){
2  fn(i);
3  } 
4 function fn(i){ 
5 setTimeout(()=>{ 
6 console.log(i)
7  },0)
8  }

 

 
 
 
posted @ 2022-04-27 09:39  天生如此  阅读(33)  评论(0)    收藏  举报