Skip to content

事件循环

事件循环是浏览器实现异步 IO 功能的基础。

UI 事件

浏览器监听下层窗口系统传递的键盘和鼠标等设备的事件,对事件进行进行进一步封装,结合 UI 元素生成 UI 事件,并向上传播

事件冒泡

多级队列

浏览器的循环队列使用多级

  1. 调用栈(Call Stack):记录函数调用顺序
  2. 任务队列(Task Queue):存储待执行的宏任务
  3. 微任务队列(Microtask Queue):存储待执行的微任务
  4. 事件循环(Event Loop):不断检查调用栈是否为空,为空则先执行所有微任务,然后执行一个宏任务