当我添加'for'时,为什么'setInterval'停止工作?
<script>
var x=0;
setInterval(function() {counter()},1);
function counter()
{
x++;
}
for(var start=0; start <= 100; start++)
{
alert("x is "+x+" and start is "+start);
}
</script>
答案 0 :(得分:6)
由于Javascript不是(在这种情况下)多线程,你的setInterval基本上意味着“下次主线程没有做任何事情并且超时已经过去,让它执行我的回调”。
你的for循环阻塞主线程直到它完成(并且它不会退出,直到它显示了101个警报,每个警报都在等待用户输入)所以你的回调将不会发生,直到for循环结束并且主要线程可以回到“什么都不做”。