当前位置: 首页 > article >正文

js的时间循环的讲解

JavaScript 事件循环(Event Loop)是其运行时的核心机制,负责处理异步操作,确保单线程的 JavaScript 能够高效地处理并发任务。下面从多个角度详细解析事件循环机制:

1. 核心概念

(1)执行栈(Call Stack)
  • 定义:JavaScript 是单线程的,所有同步任务都在执行栈中依次执行。
  • 特点:函数调用会形成一个栈帧,执行完毕后出栈。
(2)任务队列(Task Queue)
  • 宏任务队列(MacroTask Queue):包含整体代码(script)、setTimeoutsetIntervalsetImmediate(Node.js)、I/O 操作等。
  • 微任务队列(MicroTask Queue):包含 Promise.thenMutationObserverprocess.nextTick(Node.js)等。
(3)事件循环(Event Loop)
  • 核心逻辑:不断从任务队列中取出任务并放入执行栈执行,直到队列清空。

2. 事件循环的执行流程

  1. 执行同步代码:首先执行执行栈中的所有同步任务。
  2. 处理微任务:同步任务执行完毕后,清空微任务队列(按入队顺序执行,期间新产生的微任务会被加入队列尾部并继续处理)。
  3. 处理宏任务:微任务队列清空后,从宏任务队列中取出一个任务执行,然后再次检查并清空微任务队列,以此循环。

示例代码

javascript

console.log('1'); // 同步任务,直接入栈执行setTimeout(() => {console.log('2'); // 宏任务,放入宏任务队列
}, 0);Promise.resolve().
http://www.lryc.cn/news/2397675.html

相关文章:

  • Flutter实现不规则瀑布流布局拖拽重排序
  • 【第4章 图像与视频】4.1 图像的绘制
  • 苹果应用开发详细教程(2025最新版)
  • G25-05-31Rust开源项目日报 Top10
  • 2025年主流编程语言全面分析与学习指南
  • window安装nginx
  • ArcGIS Pro裁剪影像
  • [智能算法]蚁群算法原理与TSP问题示例
  • Vue-4-前端框架Vue基础入门之Vue的常用操作
  • ubuntu国内镜像源手动配置
  • 21-CS61B-lab6:java文件操作以及持久化一见
  • ⚡️ Linux 系统安装与配置 Git
  • SpringBoot 自动装配原理深度解析:从源码到实践
  • 【Go语言】Fyne GUI 库使用指南 (面向有经验开发者)
  • Nginx Lua模块(OpenResty)实战:动态化、智能化你的Nginx,实现复杂Web逻辑 (2025)
  • openssl 怎么生成吊销列表
  • Go语言包的组织与导入 -《Go语言实战指南》
  • springboot-响应接收与ioc容器控制反转、Di依赖注入
  • CSP使用严格设置
  • Spring代理工厂类ProxyFactory作用以及实现原理
  • SpringBoot使用MQTT协议简述
  • 【GraphQL】深入解析 Apollo Client:从架构到实践的一站式 GraphQL 解决方案
  • 集成电路制造设备防震基座选型指南:为稳定护航-江苏泊苏系统集成有限公司
  • 华为OD机试真题——阿里巴巴找黄金宝箱(II)(2025A卷:100分)Java/python/JavaScript/C/C++/GO最佳实现
  • Vue中 toRaw 和 markRaw 的使用
  • 探索DeepSeek提示词:关键策略与实用场景
  • 海底三维可视化平台
  • Elasticsearch 读写流程深度解析
  • AIoT赋能场馆数字化转型:智能管理新生态
  • 1、Pytorch介绍与安装