经过各种测试,最终才发现window对象的setInterval,setTimeout函数都是单开一个线程按给定的时间,执行对应的函数。主线程会立即往下执行。而不是在setInerval、setTimeout方法处阻塞规定的时间!再执行对应的函数。例子如下:
执行的结果:先弹出“1”对话框。然后再弹出“setInterval()”对话框。
所以是执行到setInterval("tiao()",5000);时,开辟一个新线程来执行tiao()。主线程仍会立即往下执行window.alert("1");
同理:setTimeout方法也是一样的!