什么是事件循环

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

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

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

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

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

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

  • Promise的then和 catch方法

什么是事件循环机制

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

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

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

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

相关推荐
qq_12084093712 分钟前
Three.js 工程向:Clock、deltaTime 与固定步长主循环
开发语言·javascript·ecmascript
90程序员14 分钟前
纯浏览器解析 APK 信息,不用服务器 | 开源了一个小工具
前端·apk
用户114818678948418 分钟前
Vosk-Browser 实现浏览器离线语音转文字
前端·javascript
江上清风山间明月22 分钟前
Vite现代化的前端构建工具详解
前端·webpack·nodejs·vite
PBitW24 分钟前
apijson 让前端自己定义接口 —— 但不推荐
前端·apijson
存在X24 分钟前
前端自动化编译Jenkins
前端·github
军军君0129 分钟前
数字孪生监控大屏实战模板:云数据中心展示平台
前端·javascript·vue.js·typescript·前端框架·es6·echarts
吴声子夜歌34 分钟前
Vue3——使用axios实现Ajax请求
前端·javascript·ajax·axios
qq43569470139 分钟前
JavaWeb05
前端·html
@PHARAOH39 分钟前
WHAT - W3C WCAG 2.1 AA 无障碍标准
前端