事件循环 Event Loop,一道面试题看懂浏览器执行机制
说到前端面试Event Loop 事件循环绝对是必考重难点。很多小伙伴背了一堆理论宏任务、微任务倒背如流一遇到真实输出顺序题直接翻车。我当初面试也是这样死记概念没用只要换一道题型就乱序。其实浏览器事件循环根本不用死记只要吃透执行顺序底层机制所有面试题都是换汤不换药。今天我用一道经典高频面试题为切入点带大家一步步拆解执行流程彻底搞懂浏览器 Event Loop以后不管遇到多复杂的异步代码排序题都能一眼看出答案。一、先理清核心基础同步、微任务、宏任务很多人搞混执行顺序根源是没分清三类代码的优先级。浏览器执行JS有一套固定铁律优先级从高到低同步代码 微任务(MicroTask) 宏任务(MacroTask)给大家整理日常开发最常用的任务分类不用记冷门API面试够用微任务Promise.then/catch/finally、async/await 后续代码、queueMicrotask宏任务setTimeout、setInterval、DOM 事件、AJAX 请求这里重点提一句Promise 本身是同步执行的只有.then 回调属于微任务这是90%人踩坑的点。二、经典面试真题全网高频下面这段代码是前端面试出镜率最高的 Event Loop 考题大家可以先自己心里跑一遍顺序看看能不能答对console.log(同步代码 1); setTimeout(() { console.log(宏任务 setTimeout); }, 0); new Promise((resolve) { console.log(Promise 同步执行); resolve(); }).then(() { console.log(微任务 Promise.then); }); console.log(同步代码 2);很多新手的错误答案同步1 → setTimeout → Promise同步 → Promise微任务 → 同步2这个顺序完全错了下面我带大家逐行拆解真实执行流程看懂底层逻辑。三、逐行拆解真实执行流程第一步执行所有同步代码JS 自上而下执行先执行所有同步任务遇到异步任务先放入对应队列不执行。1、打印同步代码 1 2、遇到 setTimeout 宏任务丢进宏任务队列等待执行 3、new Promise 构造函数同步执行打印Promise 同步执行resolve 触发后.then 回调进入微任务队列 4、打印同步代码 2。此时主线程同步代码执行完毕主线程空闲准备清空任务队列。第二步优先清空所有微任务按照浏览器机制同步代码跑完后必须一次性清空全部微任务队列才会执行宏任务。执行 Promise.then打印微任务 Promise.then微任务队列清空。第三步执行宏任务队列微任务清空完毕才会执行排在队列里的 setTimeout打印宏任务 setTimeout。最终正确输出顺序同步代码1 → Promise同步执行 → 同步代码2 → Promise.then微任务 → setTimeout宏任务四、升级题型加入 async/await面试难点搞定基础题我们再来一个升级版题型加入现在必考的 async/await很多人在这里翻车console.log(start); async function asyncFn() { console.log(async 同步代码); await Promise.resolve(); console.log(async 微任务代码); } asyncFn(); setTimeout(() { console.log(setTimeout 宏任务); }, 0); console.log(end);核心知识点await 之前的代码同步执行await 之后的代码属于微任务。真实执行顺序 1、打印 start 2、调用 asyncFn同步打印 async 同步代码 3、await 触发后续代码入微任务队列 4、setTimeout 入宏任务队列 5、打印 end 6、清空微任务打印 async 微任务代码 7、最后执行宏任务打印 setTimeout 宏任务。五、总结 Event Loop 终极执行规则万能公式我把多年面试总结的万能规则分享给大家所有浏览器异步题直接套1、先跑所有同步代码异步全部入队等待 2、同步跑完优先清空整条微任务队列一个不留 3、微任务清空完毕再依次执行宏任务 4、每执行完一个宏任务都会再次检查微任务队列循环往复这就是事件循环。六、开发中为什么要学 Event Loop很多同学觉得这只是面试题工作用不到其实大错特错。平时页面卡顿、定时器不准、异步赋值拿不到数据、状态更新延迟本质都是不懂事件循环导致的。比如定时器设置0秒并不是立即执行而是等当前同步和微任务跑完才会执行。弄懂这套机制不仅面试稳过日常写异步逻辑、排查诡异bug都会事半功倍。写在最后Event Loop 看似抽象其实逻辑非常固定没有任何随机规则。不用死记硬背名词只要记住同步优先、微任务次之、宏任务最后的核心顺序多刷两道真题就能彻底吃透。前端面试的异步考题万变不离其宗掌握这一套执行机制以后再也不会在事件循环题目上丢分。

相关新闻

「干货」菜鸟都能看懂的爬虫Scrapy入门指南

「干货」菜鸟都能看懂的爬虫Scrapy入门指南

原创:芮舟 菜鸟学 可将网络数据抓取的小脚本, 也就是爬虫, 是能把访问资源、获取数据以及入库保存这一过程实现自动化的一种工具。能够成为很好爬虫工具的有“挂机神器”按键精灵, 还有“抢课神器”, 想必大家对这两者已经是历经比较熟悉的状况了。 但于生产工作里…

2026/8/24 14:34:03 阅读更多 →
DeepSeek Harness 源码安装避坑,Node 版本与 pnpm 依赖冲突处理

DeepSeek Harness 源码安装避坑,Node 版本与 pnpm 依赖冲突处理

源码安装前的环境自检 DeepSeek Harness 的源码安装并不复杂,但前提是环境得先对上路子。官方文档里写得清楚:Node.js 需要 v22.19 及以上,或者直接用 v24 系列,包管理器指定 pnpm。听起来没几行字,实际踩坑的人里&…

2026/8/24 14:34:03 阅读更多 →
DeepSeek Harness 极简模式跑 Terminal Bench,模型基准测试实操

DeepSeek Harness 极简模式跑 Terminal Bench,模型基准测试实操

为什么极简模式是评测模型工具调用能力的“干净画布” DeepSeek Harness 提供了四种运行模式,其中极简模式(Minimal)被官方专门用于 Terminal Bench 等基准测试场景。这个设计思路很直接:当你想评估模型“纯粹”的工具调用能力时&…

2026/8/24 14:34:03 阅读更多 →

最新新闻

恶霸鲁尼崩溃修复指南:3 条路径快速解决 Windows 10 闪退

恶霸鲁尼崩溃修复指南:3 条路径快速解决 Windows 10 闪退

恶霸鲁尼崩溃修复指南:3 条路径快速解决 Windows 10 闪退 【免费下载链接】SilentPatchBully SilentPatch for Bully: Scholarship Edition (fixes crashes on Windows 10) 项目地址: https://gitcode.com/gh_mirrors/si/SilentPatchBully Windows 10 上玩《恶霸鲁尼:奖…

2026/8/24 18:09:09 阅读更多 →
Stretchly休息提醒HTML定制:改3个文件换掉默认提醒弹窗

Stretchly休息提醒HTML定制:改3个文件换掉默认提醒弹窗

Stretchly休息提醒HTML定制:改3个文件换掉默认提醒弹窗 【免费下载链接】stretchly The break time reminder app 项目地址: https://gitcode.com/gh_mirrors/st/stretchly 默认的休息提醒弹窗只有一行提示文案和倒计时。如果你想换提示语、字体或配色&#…

2026/8/24 18:09:09 阅读更多 →
BERT实战故障诊断手册:从Tokenizer到ONNX部署避坑指南

BERT实战故障诊断手册:从Tokenizer到ONNX部署避坑指南

1. 这不是一篇“科普文”,而是一份BERT实操者的手写笔记 你点开这篇文章,大概率不是为了背诵“BERT是Bidirectional Encoder Representations from Transformers的缩写”这种教科书定义。你可能刚在项目里被下游任务准确率卡住,调试了三天发现…

2026/8/24 18:09:09 阅读更多 →
恶霸鲁尼崩溃修复指南:3 步解决 Windows 10 闪退与音乐课卡死

恶霸鲁尼崩溃修复指南:3 步解决 Windows 10 闪退与音乐课卡死

恶霸鲁尼崩溃修复指南:3 步解决 Windows 10 闪退与音乐课卡死 【免费下载链接】SilentPatchBully SilentPatch for Bully: Scholarship Edition (fixes crashes on Windows 10) 项目地址: https://gitcode.com/gh_mirrors/si/SilentPatchBully 刚进校门口画面…

2026/8/24 18:09:09 阅读更多 →
微信小程序自定义导航栏开发指南:从原理到实战封装

微信小程序自定义导航栏开发指南:从原理到实战封装

1. 项目概述:为什么我们需要自定义顶部导航?做微信小程序开发的朋友,估计都遇到过这样的场景:产品经理拿着设计稿过来,指着那个顶部导航栏说,“这里,我们要做成渐变色的,还要加个返回…

2026/8/24 18:09:09 阅读更多 →
WRC2026核心“留形”技术:从概念到代码实现智能体记忆系统

WRC2026核心“留形”技术:从概念到代码实现智能体记忆系统

最近在技术圈里,一个名为“WRC2026大考场”的项目悄然走红。乍一看标题,很多人会以为这又是一个关于机器人或AI竞赛的新闻。但点进去才发现,它的核心并非赛事本身,而是一个名为“留形”的技术概念,并且其“含量”高得惊…

2026/8/24 18:08:09 阅读更多 →

日新闻

前端内容安全与依赖审计实践

前端内容安全与依赖审计实践

前端内容安全与依赖审计实践 前端安全依赖分层防护。没有任何单一配置能替代输出编码、权限校验和依赖更新。 把不可信内容当作数据 默认使用框架的转义能力;确需渲染 HTML 时,先在服务端或可信的客户端库中进行白名单过滤。避免把用户输入直接赋给 inne…

2026/8/24 1:08:15 阅读更多 →
Windows登录密码存储机制全解析:从哈希算法到安全加固实战

Windows登录密码存储机制全解析:从哈希算法到安全加固实战

1. 项目概述:Windows登录密码的“黑匣子”每次你按下CtrlAltDel,输入密码,然后看到那个熟悉的桌面,这背后发生了一系列复杂而精密的操作。作为一名长期与Windows系统打交道的从业者,我经常被问到:“我的密码…

2026/8/24 1:08:15 阅读更多 →
AI面试系统安全挑战与解决方案

AI面试系统安全挑战与解决方案

1. 项目概述:AI面试系统的安全挑战去年参与某跨国企业AI面试系统部署时,遇到一个典型案例:候选人在视频面试中无意提到竞争对手产品名称,系统竟自动将该信息关联到企业知识库并生成竞品分析报告。这个看似"智能"的功能&…

2026/8/24 1:08:15 阅读更多 →

周新闻

[光学原理与应用-521]:对光的错误理解与纠偏

[光学原理与应用-521]:对光的错误理解与纠偏

首先光是一种能量的载体和形态,宏观上观察到的光是由无数个微观的光量子组成的,每个光子在产生的瞬间,其在真空的空间中以确定不变的速度沿着一个初始的方向一直向前,在微观层面,每个光量子的运动轨迹是以波函数所展现…

2026/8/24 0:06:02 阅读更多 →
SIP通话转接原理与REFER方法实战解析

SIP通话转接原理与REFER方法实战解析

1. 通话转接不是“挂断再拨号”,而是SIP会话的动态重定向你有没有遇到过这样的场景:客服坐席A正在和客户通电话,突然需要把这通对话无缝转给专家坐席B,客户完全感知不到中间的断连——既没听到忙音,也没被要求重新拨号…

2026/8/24 0:20:20 阅读更多 →
Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

1. 为什么选择Kolla-ansible来部署单节点OpenStack?如果你正在寻找一种能把OpenStack从“概念”快速变成“可用的实验环境”的方法,那么Kolla-ansible几乎是当前最主流、最省心的选择。我见过太多人卡在手动编译依赖、配置服务、处理版本冲突的泥潭里&am…

2026/8/24 0:14:11 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/23 18:47:06 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/23 12:10:44 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/24 11:20:22 阅读更多 →