1.执行时机
let i = 0
for(i = 0; i<6; i++){
setTimeout(()=>{
console.log(i)
},0)
}
如上函数:
打印为6个6而不是0,1,2,3,4,5
原因是:首先会执行for循环后i的值为6,然后尽快打印6次,结果就是6个6.
2.如何打印出0,1,2,3,4,5
setTimeout(()=>{
console.log(i)
},0)
}
原因:每次for循环会复制一个i。
3.第二种打印0,1,2,3,4,5
(function(j) { // j = i
setTimeout(function() {
console.log(j);
}, 0);
})(i);
}