JS 函数的执行时机
2020-03-18 本文已影响0人
我是WilliamWang
为什么以下代码执行打印出6个6
let i = 0 //
for(i = 0; i<6; i++){
setTimeout(()=>{
console.log(i)
},0)
}
setTimeout(),设置了一个定时器,在定时器到期后执行一个函数或指定的一段代码,这里延迟时间是0,可以当成尽快打印出i。
由于每执行一次for循环就要定一次时,也就是说每次循环都有一个闹钟,但是到循环结束才会打出结果,一共执行了6次循环,那么就定了6个闹钟,每次到期后打印出1个6,总共打印6次
怎样才能让上面代码打印出0、1、2、3、4、5
for(let i = 0; i<6; i++){
setTimeout(()=>{
console.log(i)
},0)
}
将let写进for循环里,每循环一次,let就会新创建一个i,这是JS为了满足大众需求创建出来的
除了使用 for let 配合,以下方法也可以打印出 0、1、2、3、4、5
for (let i=0; i<6; i++){
console.log(i);
}