用setTimeout延迟打印一个for,当时不懂原理,但是面试的大叔人特别好,给我讲了好多题,面试肯定是失败的,但是学到了很多东西,以后的面试经常用到大叔给讲的东西。喏,其中之一就是这个:
for(var i=0 ; i<10; i++) { (function(i){ //var backup = i;//定义个backup也可以暂存i值 setTimeout(function() { console.log(i);//输出0-9 }, 1000*i); })(i); } 把变量i包养起来,用的时候再拿,就ok! 反例就是,输出了10个10
for(var i=0 ; i<10; i++) { setTimeout(function() { console.log(i); }, 1000); }