logo

什么是事件循环(event loop)?调用栈(call stack)与任务队列(task queue)有什么区别?

What is event loop? What is the difference between call stack and task queue?

题目类型: 技术面试题

这是一道技术面试题,常见于澳洲IT公司面试中。

难度: hard

分类: javascript-fundamentals

标签: Event Loop, Microtask, Macrotask

参考答案摘要

答案 调用栈是当前正在执行的函数帧栈;同步代码按栈的入栈/出栈顺序执行。 异步回调不会直接进栈,而是被放入队列等待:宏任务队列(task queue,如 setTimeout、I/O)与微任务队列(microtask queue,如 Promise.then、queueMicrotask)。 事件循环会在调用栈清空后,优先清空微任务队列,再取一个宏任务入栈执行,如此循环。

本题提供 STAR 原则详细解答和技术解析,登录匠人学院学习中心即可查看完整答案。

← 返回面试题库

什么是事件循环(event loop)?调用栈(call stack)与任务队列(task queue)有什么区别?

Hardjavascript

想查看完整答案?

登录匠人学院学习中心,获取 STAR 格式回答和详细技术解析

前往学习中心查看答案