前端面试-

事件循环机制

1.概念
运行时对js脚本的调度方式就叫做事件循环
主线程事件执行完毕后从任务队列中读取异步事件,并将其放入调用栈中执行,
这个过程循环不断,所以整个这种运行机制被称为Event Loop(事件循环)

用途:
  提供了异步编程的可能性。
1.改善因js单线程的特性而导致的没必要的程序阻塞问题(事件协调/用户脚本/
渲染/网络。。。)
  事件协调:定时器 promise
   用户交互:click onScroll
  脚本:js脚本执行
  渲染:解析DOM / css
  网络:HTTP请求
  核心运作流程
  定时器触发线程
  HTTP异步线程
  EventLoop处理线程
事件循环机制
1.事件循环机制从宏任务开始
2.第一个执行的宏任务是一个匿名函数,该函数内部是当前js整体代码
3.将任务放置于主线程上按从上到下的顺序依次进入调用栈执行
同步任务压栈直接执行,然后弹栈
异步任务压栈,将任务的函数体添加至任务队列,然后弹栈
4.当主线程上的任务都执行完毕,按照先进先出的原则读取任务队列
中科执行的任务,将出队列的任务放置到主线程上
(一)优先微任务,例如promise/mutationObserver
  (二)其次执行消息队列,例如setTimeout/setInterval
5.无论微任务宏任务,其内部肯定也存在同步任务和异步任务

posted @ 2025-06-16 17:05  关关大大  阅读(27)  评论(0)    收藏  举报