频鹏凶 发表于 2025-6-16 16:26:37

前端面试-

事件循环机制
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.无论微任务宏任务,其内部肯定也存在同步任务和异步任务

来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
页: [1]
查看完整版本: 前端面试-