在解释 JS 函数的执行时机之前,我们先看一段代码
let i = 0
for(i = 0; i<6; i++){
setTimeout(()=>{
console.log(i)
},0)
}
这段代码的结果是 6 6 6 6 6 6 6 要解释这段代码就要回到这个执行时机了。 在执行 console.log(i) 之前,这段代码就已经执行了完成6次 i++ 的动作,所以结果当然是6 个6,如果我们想让它依次打印从1+到6可以参照下面的代码:
for(let i = 1; i<7; i++){
setTimeout(()=>{
console.log(i)
},0)
}
这段代码的结果是 1 2 3 4 5 6 。