Skip to content

回答

以上代码中先打印 xiaoming 然后才到 libai,其中的原理如下。

  1. 首先整个代码块 script 会作为一个宏任务,放到任务队列中去执行。

  2. 在执行的过程中遇到了 sestTimeout ,把它放在宏任务的队列中。

  3. 继续往下执行遇到了 document.write('xiaoming') 表示要在页面上渲染 xiaoming,但此时不会立即渲染。

  4. 继续往下执行,当前宏任务执行完毕。

  5. 开始渲染页面。这个时候 xiaoming 就被渲染到页面上了。

  6. 执行所有可执行的微任务。

  7. 执行下一个宏任务。

  8. 当期事件结束,开始重复下一次循环。也就是执行下一个宏任务。直到所有宏任务都执行完毕。

更新时间: