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

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().

相关文章:

  • Y1——链式前向星
  • mybatisplus的总结
  • 计算机网络 : 应用层自定义协议与序列化
  • 2894. 分类求和并作差
  • 判断使用什么技术来爬取数据详细讲解
  • Python Day40 学习(复习学习日志Day5-7)
  • 【笔记】解决虚拟环境中找不到 chromedriver 的问题
  • 地震资料裂缝定量识别——学习计划
  • Netty学习example示例
  • OpenCV——Mac系统搭建OpenCV的Java环境
  • DAY 41 超大力王爱学Python
  • 【保姆级教程】PDF批量转图文笔记
  • ACTF2025-web-eznote-wp
  • 混和效应模型在医学分析中的应用
  • Java设计模式之观察者模式详解
  • NodeJS全栈WEB3面试题——P4Node.js后端集成 服务端设计
  • 《深度探索C++对象模型》阅读笔记(完整版)
  • 网络攻防技术二:密码学分析
  • Unity + HybirdCLR热更新 入门篇
  • MySQL日志
  • 淄川政府网站建设哪家专业/网页模板图片
  • 中华南大街网站建设/seo网站建设优化
  • 苏州调查公司哪家好/广州中小企业seo推广运营
  • 义乌做网站要多少钱/免费的外链网站
  • 心得网站建设/seo云优化方法
  • web网站扫描/开发网站的流程