KNOWLEDGE / NOTE
事件循环
MDN · 站内原创整理
JavaScript 通过任务队列和微任务队列协调异步工作,理解执行顺序才能正确判断 UI 更新时机。
核心说明
浏览器中的 JavaScript 任务不是简单排队执行。同步代码先运行,当前任务结束后清空微任务队列,再进入下一个宏任务,浏览器才有机会进行渲染。
关键点
- Promise.then 属于微任务,setTimeout 回调属于宏任务。
- 连续创建大量微任务会推迟渲染和用户输入响应。
- 遇到异步顺序问题时,把日志分别放在同步代码、微任务和定时器中验证。
console.log(1)
queueMicrotask(() => console.log(2))
setTimeout(() => console.log(3))
console.log(4) // 1, 4, 2, 3 资料来源 在官方文档中核验:MDN ↗