解释 JavaScript 事件循环
理解 JavaScript 事件循环机制
问题
解释 JavaScript 中事件循环是如何工作的。
答案
事件循环是一种机制,它使 JavaScript 尽管是单线程的,也能执行非阻塞操作。
组成部分
- 调用栈(Call Stack) - 执行同步代码
- Web APIs - 处理异步操作(setTimeout、fetch 等)
- 回调队列(宏任务队列) - 存储来自 Web APIs 的回调
- 微任务队列 - 存储 Promise 回调(优先级更高)
执行顺序
console.log('1'); // 同步
setTimeout(() => {
console.log('2'); // 宏任务
}, 0);
Promise.resolve().then(() => {
console.log('3'); // 微任务
});
console.log('4'); // 同步
// 输出: 1, 4, 3, 2
关键点
- 微任务(Promise)在宏任务(setTimeout)之前执行
- 事件循环持续检查调用栈是否为空
- 理解这一点对异步编程至关重要
目录