宏任务队列:这是主队列,解析 HTML、执行脚本标签和事件回调(如点击和键盘事件)等任务都在其中排队。示例包括 setTimeout、setInterval 和 I/O。
微任务队列:这里的任务在当前执行的脚本之后、浏览器渲染或处理事件之前立即处理。示例包括 Promises 和 MutationObserver。
动画帧队列:该队列中的任务与渲染相关,并在下次重绘之前进行处理。requestAnimationFrame 是一个常见的 API,它将任务添加到该队列中。
空闲队列:该 API 允许开发人员在主线程不忙的空闲期间安排后台任务。当浏览器确定有空闲时间或达到截止时间参数时(以先到者为准),浏览器将运行这些任务。