什么是事件循环

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

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

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

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

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

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

  • Promise的then和 catch方法

什么是事件循环机制

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

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

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

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

相关推荐
隐藏用户_y10 分钟前
JavaScript闭包概念和应用详解
javascript·面试
Dream耀10 分钟前
CSS选择器完全手册:精准控制网页样式的艺术
前端·css·html
wordbaby10 分钟前
React 19 亮点:让异步请求和数据变更也能用 Transition 管理!
前端·react.js
月亮慢慢圆10 分钟前
VUE3基础之Hooks
前端
我想说一句12 分钟前
CSS 基础知识小课堂:从“选择器”到“声明块”,带你玩转网页的时尚穿搭!
前端·javascript·面试
红衣信22 分钟前
深入浅出 CSS 基础:从概念到选择器实战
前端·css
饮茶三千23 分钟前
五分钟!带你开发一个 VS Code 插件,实现状态栏文案轮播效果
前端
和雍23 分钟前
”做技术分享?苟都不做“做,做的就是 module.rules 加工过程
javascript·面试·webpack
GIS之路24 分钟前
OpenLayers 地图投影转换
前端