如果你写过 JavaScript,大概率被问过一道面试题:"setTimeout(fn, 0) 为什么不是立刻执行?"再进阶一点:"Promise.then 和 setTimeout 谁先执行?"绝大多数人的答案是"因为 JS 有事件循环(event loop)"。这话只对了一半——而且这个"一半"恰恰掩盖了最关键的认知盲点。
Philip Roberts 在 JSConf EU 2014 上的这场演讲《What the heck is the event loop anyway?》,是整个 JavaScript 社区被引用最多的单场技术演讲之一,截至 2026 年 7 月累计 377 万播放、10.4 万点赞。它的价值不在于教你写代码,而在于用一个可视化工具把"JS 运行时"和"浏览器宿主环境"的边界彻底划清。看完你会意识到一个反直觉的事实:异步从来不是 JavaScript 语言本身的本事,而是浏览器(或 Node 的 libuv)在背后帮你接活、再把结果扔回来的结果。这个视角一旦建立,回调地狱、