代码1:
for (var i = 0; i < 5; i++) {
setTimeout((function(){
console.log("delayer:" + i);
})(),0);
console.log(i);
}
问题:
代码1:setTimeout(立即执行函数,0)循环里面不是有console.log(i),为什么不是先执行console.log(i)而是先执行setTimeout(立即执行函数,0)
代码1:
for (var i = 0; i < 5; i++) {
setTimeout((function(){
console.log("delayer:" + i);
})(),0);
console.log(i);
}
问题:
代码1:setTimeout(立即执行函数,0)循环里面不是有console.log(i),为什么不是先执行console.log(i)而是先执行setTimeout(立即执行函数,0)
13 回答12.8k 阅读
7 回答2k 阅读
3 回答1.1k 阅读✓ 已解决
2 回答1.2k 阅读✓ 已解决
6 回答927 阅读✓ 已解决
6 回答1.1k 阅读
2 回答1.3k 阅读✓ 已解决
(function(){console.log(1)})();
这样的立即执行函数,直接运行了,这后面的console.log和setTimeout有什么关系了。。
调用setTimout的时候,相当于调用立刻执行函数返回的undefinde