什么是事件循环

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

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

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

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

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

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

  • Promise的then和 catch方法

什么是事件循环机制

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

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

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

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

相关推荐
本当迷ya1 分钟前
openapi2ts 统一后端返回值
前端·vue.js·前端框架
草字7 分钟前
uniapp 优博讯k329蓝牙打印机,设置打印机,一键打印
开发语言·javascript·uni-app
夕水18 分钟前
10个互动关卡带你轻松掌握js的位运算
前端·javascript
复苏季风19 分钟前
为什么Vite动态加载图片报错? 动态资源引入的那些事儿
前端·vue.js·架构
sp4227 分钟前
静态网站生成利器 Eleventy
前端
阿聪_33 分钟前
React.ComponentType 类型使用
前端
aiwery33 分钟前
理解 JavaScript 中的 Iterator、Generator、Promise 与 async/await
前端·面试
K仔33 分钟前
什么是DOM事件模型
前端
熊猫片沃子37 分钟前
新手必避的 Vue 基础坑:从数据绑定到事件处理的常见错误与解决方案
前端·vue.js
lichenyang45339 分钟前
UniApp 实现搜索页逻辑详解
前端