JavaScript 的事件循环(Event Loop)是理解 JS 异步编程的核心。它是浏览器(或 Node.js)协调同步代码和异步代码执行的一种机制。 由于 JavaScript 是一门单线程语言(意味着它同一时间只能做一件事),如果没有事件循环机制,执行耗时任务(如网络请求、定时器)就会导致页面卡死。事件循环正是 JS 实现非阻塞 I/O 的秘密武器。 下面我们从核心概念、运行机制到经典代码示例,把浏览器的事件循环彻底讲透。 --- 一、 核心组件 要理解事件循环,首先需要认识浏览器环境中的几个核心组件: 1. Call Stack(调用栈): JS 代码真正执行的地方。 遵循后进先出(LIFO)原则。 所有的同步代码都会先被推入调用栈执行。 2. Web APIs(浏览器 API): 浏览器提供的工作线程(C++ 实现),独立于 JS 主线程。 例如:、、。 当调用这些异步方法时,调用栈会把任务交给 Web APIs 处理,JS 主线程继续往下走。 3. Task Queue(任务队列): 当 Web APIs 处理完异步任务后(比如定时器时间到了,或者网络请求拿到数据...