事件循环(Event Loop)

一、是什么

事件循环是 JS 处理异步任务的核心机制。

二、核心结构

调用栈 + 任务队列

三、任务分类

1. 宏任务(Macro Task)

  • setTimeout
  • setInterval
  • DOM事件

2. 微任务(Micro Task)

  • Promise.then
  • queueMicrotask

四、执行顺序(重点🔥)

同步代码 → 微任务 → 宏任务

五、经典面试题

console.log(1);

setTimeout(() => {
  console.log(2);
}, 0);

Promise.resolve().then(() => {
  console.log(3);
});

console.log(4);
//输出:1 4 3 2

六、执行流程

  1. 执行同步代码(1 4)
  2. 执行微任务(3)
  3. 执行宏任务(2)

七、总结

事件循环本质:“任务调度机制(同步 + 异步)”