JS 函数的执行时机
为什么如下代码会打印 6 个 6
let i = 0for(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)); }