什么是事件循环

JS中渲染分为同步任务和异步任务

  • 同步任务都在主线程上执行,形成一个执行栈
  • 异步任务通过回调函数来实现,通常用于处理耗时的,还有资源加载的场景
    • 异步任务都会被放入**任务队列(消息队列)**中

任务队列分为两种,一种是宏任务,一种是微任务

宏任务是指,在主线程中执行的较大任务,通常包括有:

  • setTimeout() 定时器
  • setInterval()
  • I/O操作
  • script脚本的渲染等

微任务是相对较小的异步任务

  • Promise的then和 catch方法

什么是事件循环机制

事件循环机制,就是,js在处理的时候

先执行执行栈中的同步任务,将异步任务放入到任务队列中

一旦执行栈中的所有同步任务执行完毕,系统就会按次序读取,检查微任务队列中是否被清空,如果还有微任务未执行,就先执行所有队列中的微任务(也就是将所有微任务压入执行栈中),然后再去执行宏任务,执行完毕当前宏任务之后,再去检查微任务队列,如此往复,直到任务队列被全部清空

因为JS是单线程的,为了防止阻塞页面,所以需要用到事件循环机制

相关推荐
超哥--2 小时前
B站视频内容智能分析系统(九):React 前端与管理面板
前端·react.js·前端框架
Cutecat_5 小时前
视频字幕处理工具横向:提取模式 vs 编辑模式,该如何选择
android·前端·ios·语音识别
dsyyyyy11015 小时前
JavaScript变量
开发语言·javascript·ecmascript
qq_422152575 小时前
PDF 加水印工具怎么选?2026 年文档版权保护方案对比
前端·pdf·github
kyriewen6 小时前
手写 Promise.all、race、any:不到 30 行代码,解决并发异步的所有姿势
前端·javascript·面试
brucelee1866 小时前
OpenClaw 浏览器控制(Chrome MCP)完整教程
前端·chrome
ct9787 小时前
React 状态管理方案深度对比
开发语言·前端·react
胡志辉的博客7 小时前
深入浅出理解浏览器事件循环:从一道输出题讲到 Chrome 源码
前端·javascript·chrome·chromium·event loop
代码不加糖7 小时前
js中不会冒泡的事件有哪些?
前端·javascript·vue.js
懂懂tty7 小时前
Vue2与Vue3之间API差异
前端·javascript·vue.js