JS 函数的执行时机
为什么如下代码会打印 6 个 6
let i = 0
for(i = 0; i<6; i++){
setTimeout(()=>{
console.log(i)
},0)
}
因为执行完for循环,才执行setTimeout函数。
跳出for循环后,i=6
打印 0、1、2、3、4、5 的方法
方法1
for(let i = 0; i<6; i++){
setTimeout(()=>{
console.log(i)
},0)
}
JS在for和let一起用加东西了,迎合新人思维
每次循环会多创建一个i
方法2
let c=[0,1,2,3,4,5]
function fn(){
console.log(c[0]);
console.log(c[1]);
console.log(c[2]);
console.log(c[3]);
console.log(c[4]);
console.log(c[5]);
}
fn()
输出:0 1 2 3 4 5
方法3
for (var i = 0; i < 6; i++) {
(function (a) {
setTimeout(function () {
console.log(a);
}, 0);
}(i));
}