什么是事件循环(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 原则详细解答和技术解析,登录匠人学院学习中心即可查看完整答案。