在 JavaScript 中,宏任务(Macrotask)和微任务(Microtask)是事件循环(Event Loop)机制的核心概念。理解它们对于掌握 JavaScript 的异步编程、解决代码执行顺序问题(尤其是面试中的输出顺序题)至关重要。 JavaScript 是一门单线程语言,为了不阻塞主线程,它引入了事件循环机制。所有的异步任务都会被放入任务队列中,而任务队列分为两种:宏任务队列和微任务队列。 --- 一、 宏任务(Macrotask) 宏任务通常是由宿主环境(浏览器或 Node.js)发起的,代表一个个独立、离散的工作单元。 常见的宏任务包括: 整体代码 (可以看作是第一个宏任务) (Node.js 独有) I/O 操作(如文件读写、网络请求) UI 渲染(浏览器) DOM 事件回调(如 事件) 特点: 每次事件循环只执行一个宏任务。 --- 二、 微任务(Microtask) 微任务通常是由 JavaScript 引擎本身发起的,用于处理需要在当前宏任务执行结束后、下一个宏任务开始前立即执行的较紧急任务。 常见的微任务包括: (本质上是 Promise 的语法糖...