Skip to content

事件循环

异步:某些函数不会立即执行,需要等到某个时机成熟后才会执行,该函数称为异步函数。

javascript
console.log(1)
setTimeout(() => {
  console.log(2)
}, 0)
console.log(3)

浏览器的线程:

  1. JS执行引擎线程:负责解析和执行JS代码,包括处理事件、定时器、异步请求等。
  2. 渲染线程:负责渲染页面
  3. 计时器线程:负责计时
  4. 事件监听线程:负责事件监听
  5. http网络线程:负责网络通信

事件队列: 一块内存空间,用于存放执行时机到达的异步函数。 当JS引擎空闲时(即执行栈没有可执行的上下文),它会从事件队列中取出第一个函数,并将其放入执行栈中执行。 事件循环:是指函数在执行栈、宿主线程和事件队列中的循环移动。