【发布时间】:2015-12-19 07:37:38
【问题描述】:
谁能解释一下以下代码和javascript的行为
for(var i = 0; i < 5; i++)
{
setTimeout(function(){
document.write('Iteration ' + i + ' <br>');
},1000);
}
document.write('DONE!');
为什么打印“完成!”第一的? 它不应该打印循环的所有值然后打印'DONE!'吗?
【问题讨论】:
-
'完成!'
for-loop完成后正在打印.. -
流程是你先设置5个超时函数,然后打印完成——按顺序完成。函数在间隔后执行,这就是为什么先打印 done 的原因,但程序的流程是第一个动作是设置 5 个超时回调。
标签: javascript asynchronous synchronous