宏任务和微任务 宏任务队列(macrotask queue) ajax setTimeout setInterval DOM 监听 UI Rendering 等 微任务队列 (microtask queue) Promise 的 then 回调 Mutation Observer API queueMicrotask() 等 优先级 main script中的代码优先执行(编写的顶层script代码) 在执行任何一个宏任务之前(不是队列,是一个宏任务),都会先查看微任务队列中是否有任务需要执行 也就是宏任务执行之前,必须保证微任务队列是空的; 如果不为空,那么就优先执行微任务队列中的任务(回调);