前端面试第 34 题:事件循环(Event Loop)—— 必考高频题

作者:前端一课日期:2025/11/29

下面是前端面试第 39 题:事件循环(Event Loop)—— 必考高频题
我会给你:最清晰版本 + 面试官喜欢的回答结构 + 对比 Node 与浏览器差异


第 39 题:什么是事件循环(Event Loop)?宏任务/微任务的执行顺序?

⭐ 标准答法(面试官最爱)

事件循环(Event Loop)是一套用于协调同步任务与异步任务执行顺序的机制。
它决定代码、定时器、Promise、UI 渲染等在浏览器或 Node.js 中的执行顺序。”


🧩 事件循环的核心概念

1️⃣ JS 是单线程的

所以同步逻辑在主线程上执行:

1同步任务  直接在主线程执行
2异步任务  放到事件队列,等待回调
3

🧩 2️⃣ 宏任务(MacroTask)

宏任务代表
setTimeout定时器
setInterval定时器
setImmediate(Node)Node 专用
I/O 回调文件/网络
script 脚本整个 script 是一个宏任务
messageChannel渲染后的消息

🧩 3️⃣ 微任务(MicroTask)

微任务代表
Promise.then / catch / finally
queueMicrotask
MutationObserver
process.nextTick(Node 单独机制)

💡 最终执行顺序(浏览器)

📌 一次循环:

11. 执行同步任务
22. 执行所有微任务
33. 必要时渲染
44. 执行宏任务队列中的第一个任务
55. 回到步骤 2(循环)
6

⭐ 关键点:

  • 微任务永远优先于宏任务
  • 每次宏任务结束 → 必定会把所有微任务清空

🧪 最经典考题:执行结果是什么?

1console.log(1)
2
3setTimeout(() => {
4  console.log(2)
5})
6
7Promise.resolve().then(() => {
8  console.log(3)
9})
10
11console.log(4)
12

执行顺序:

11
24
33
42
5

解释:

  • 同步:1、4
  • 微任务:3
  • 宏任务:2

🎯 浏览器 vs Node.js 事件循环的差异

面试必考!

✔ 浏览器

顺序固定:

1同步  微任务  渲染  宏任务
2

✔ Node.js(比浏览器复杂)

Node 有 6 个阶段

  1. timers(setTimeout)
  2. I/O callbacks
  3. idle / prepare
  4. poll(I/O 阶段)
  5. check(setImmediate)
  6. close callbacks

🌟 微任务在每个阶段之间执行(比浏览器更频繁)
🌟 process.nextTick 优先级最高(甚至高于微任务)


✔ 面试终极回答模板(拿满分)

“事件循环是一套控制同步任务、宏任务、微任务执行顺序的机制。
浏览器中执行顺序是:同步任务 → 所有微任务 → 必要渲染 → 一个宏任务 → 再执行所有微任务。
微任务永远优先于宏任务。
Node.js 的事件循环有多个阶段,且 process.nextTick 优先级最高。”


如果你愿意,我可以继续给你:

🔥 第 40 题:虚拟 DOM 与 Diff 算法(必考)
要继续吗?


前端面试第 34 题:事件循环(Event Loop)—— 必考高频题》 是转载文章,点击查看原文


相关推荐


让Trae CN SOLO自主发挥,看看能做出一个什么样的项目
银空飞羽2025/11/26

写在前面 很早之前就在公司内部用过这种全栈自动化开发的大模型工具,然后当时在用的Trae CN编辑器也一直说要推出该能力,早早的就加到了候补白名单中,终于在今天收到短信,正好借着运营小姐姐告诉我的平台活动,于是来试用一下。 界面展示 SOLO模式本质上就是开发者啥都不用干,给大模型一个指令,然后大模型自主完成从项目设计、代码开发、自主运行、到自动debug最终上线的一整套全栈开发流程。 你可以提前给它设定好技术栈,或者给它详细的产品设计,让它按照你的思路搞,最后由你来验收。 打开Trae CN


6个适合做 PoC 的开源无代码/低代码工具推荐
NocoBase2025/11/24

原文链接:www.nocobase.com/cn/blog/6-o… 如果在几年前你问一位产品经理或技术负责人:“最快完成一个 PoC 的方式是什么?”,大多数人都会给出类似的答案——选择一个合适的低代码或无代码平台,把业务流程、界面和基础逻辑快速搭建起来,使想法尽快进入可运行的状态。 但在过去两年里,AI 的快速发展也让这种判断开始发生变化。如今,模型能够根据自然语言生成前端代码、组件结构,甚至能根据草图生成完整页面。界面的生成速度显著提升,一部分前端工作已经可以由 AI 自动完成。近期推出的


Redis(140)Redis的Cluster的故障转移是如何实现的?
Victor3562025/11/23

Redis Cluster 的故障转移机制确保在主节点(Master)出现故障时,集群中的从节点(Slave)能够自动接管主节点的角色,从而保证高可用性。故障转移的实现涉及节点状态监控、故障检测、选举新主节点及更新集群状态等步骤。下面我们详细解析这些步骤,并结合代码示例进行深入探讨。 1. 节点状态监控和故障检测 每个 Redis 集群节点都会定期向其他节点发送 PING 消息,并期望收到 PONG 回复。如果在一定时间内未收到回复,该节点将认为目标节点可能失效。 代码示例 /* Cluster


基于51单片机的PD协议移动电源控制程序
t198751282025/11/21

含PD协议通信、电池管理、充电控制和状态显示等功能。 #include <reg52.h> #include <intrins.h> // 硬件引脚定义 sbit USB_CC1 = P1^0; // Type-C CC1检测引脚 sbit USB_CC2 = P1^1; // Type-C CC2检测引脚 sbit USB_DM = P1^2; // USB D- 引脚 sbit USB_DP = P1^3; // USB D+ 引脚 sbit L


嵌入式C++安全编码
普通网友2025/11/19

1、非修改序列算法 这些算法不会改变它们所操作的容器中的元素。 1.1 find 和 find_if find(begin, end, value):查找第一个等于 value 的元素,返回迭代器(未找到返回 end)。find_if(begin, end, predicate):查找第一个满足谓词的元素。find_end(begin, end, sub_begin, sub_end):查找子序列最后一次出现的位置。 vector<int> nums = {1, 3, 5, 7, 9};


苹果应用商店上架全流程 从证书体系到 IPA 上传的跨平台方法
aiopencode2025/11/18

将应用成功发布到苹果应用商店(App Store)往往是移动开发流程中最具挑战的一环。 相比 Android 的自由生态,苹果 App Store 在审核机制、签名系统、隐私要求等方面都有严格规范。 很多团队第一次上架都会遇到证书混乱、IPA 上传失败、审核被拒等问题。 好消息是——如今的工具生态已经成熟,无论你使用的是 macOS、Windows 或 Linux,都可以完成 App Store 上架。 本文将从实战开发者角度,完整梳理 “苹果应用商店上架” 的必要步骤、工具选择与跨平台处理方式


下载安装pycharm 并通过pycahrm来驱动Anaconda来运行Python程序
BugMaker01142025/11/17

目录 下载安装创建新项目 下载 点击跳转官方下载地址 点击下载 建议下载最新版再往前几个版本 选择需要的版本 安装 双击安装包 选择目标安装路径 选择需要的选项 然后选择下一步并安装 如果需要破解 完成安装后先关掉pycharm 再点击 然后再打开pycharm 创建新项目 选择创建新项目 选择现有环境 因为已经安装过了Anaconda 然后选择create


Python 的内置函数 object
IMPYLH2025/11/16

Python 内建函数列表 > Python 的内置函数 object Python 的内置函数 object 是 Python 中最基础的类,它是所有类的基类。在 Python 中,所有的类都直接或间接地继承自 object 类。object 类提供了一些默认的方法和属性,这些方法和属性可以被所有 Python 对象使用。 基本特性 继承关系:所有 Python 类默认都继承自 object。例如,定义一个空类时,实际上它已经隐式地继承了 object 类。 class MyClass


vue2中实现天气预报
王阔阔2025/11/14

vue2中实现天气预报功能 实现效果图静态页完整代码echarts组件代码最终实现页面渲染使用到的函数年-月-日字符串转为 昨天、今天、明天、周几 实现效果图 静态页完整代码 <template> <div class="weather-container"> <div class="weather-top"> <!-- 市区选择和更新时间 --> <p class="city-select padding-l-r-10">


企业项目级医院随访系统源码,患者随访管理系统,技术框架:Java+Spring boot,Vue,Ant-Design+MySQL5
源码宝2025/11/13

项目级医院随访系统源码,患者随访管理系统源码,三级随访系统源码,java版随访系统全套源码。 在医患关系日益紧张的当下,提升医院服务质量和效率成为了医疗机构亟待解决的问题。在此背景下,医院随访系统作为一种信息化管理工具应运而生,它不仅优化了医患关系,更是在医疗服务的多个环节中起到了至关重要的作用。  医院随访系统的核心功能是患者资料管理、医患沟通和随访平台。该系统通过集成先进的信息技术,为医院提供了全面的患者信息支持,包括患者的个人基本信息、住院详情、治疗过程以及后续的随访记录。这样的信息管

首页编辑器站点地图

本站内容在 CC BY-SA 4.0 协议下发布

Copyright © 2025 聚合阅读