过完年,开年看的最多的就是新年前端面试吐槽,看到一个很有趣的题目,涉及到setTimeout和闭包的内容,拿出来和大家一起了解一下
以下代码在执行后会输出什么
|
|
如果需要延迟执行,增加setTimeout,会发生什么
|
|
假如套上一个立即执行函数1234567for (var i = 0; i < 5; i++) { (function(i) { setTimeout(function() { console.log(i); }, i * 1000); })(i);}
上例去掉小括号的i
setTimeout的位置调整一下1234567for (var i = 0; i < 5; i++) { (function() { setTimeout(function() { console.log(i); }, i * 1000); })(i);}
回到第一题1234567setTimeout(function(){ console.log(0);},0);for (var i = 0; i < 5; i++) { console.log(i);}