当我们执行以下代码时,结果会按1、3、2的顺序弹出。 alert(1); setTimeout(function() { alert(2); },0); alert(3); 这是事件循环机制,因为js是单线程的,是基于事件循环的。而setTimeout函数是异步的,异步的事件会加入一个队列,会等到当前同步的任务执行完毕后,再执行setTimeout队列的任务。所以,通过设置任务在延迟0毫秒后执行,就能改变任务执行的先后顺序,延迟该任务发生,改变它所调用的函数的优先级,使之异步执行。 例: 1. 下面这段代码,