首先,我们要知道JavaScript是单线程调用,在程序启动的时候,会把不同的代码段分派到不同的调用栈,同步任务在同步栈中直接执行,宏任务分派到宏任务栈,微任务会分配到微任务栈,分配好之后,调用栈会被清空,被清空会后,事件循环优先寻找微任务中的任务,就是说,每次宏任务结束之后事件循环就会执行微任务,直到微任务里面的任务执行完,才会再执行下一轮宏任务。

宏任务:script,定时器等

微任务:then(),catch()等

JavaScript小面试~宏任务和微任务的更多相关文章

  1. javascript中的宏任务和微任务(一)

    一.宏任务和微任务有哪些 宏任务:setTimeout,setInterval,ajax,dom,宏任务是由浏览器提供的 微任务:promise,async/await,微任务是由es6提供的 二.微 ...

  2. javascript中的宏任务和微任务(二)

    js事件轮询执行顺序总结: 1)所有的同步任务都在主线程上执行,行成一个执行栈. 2)除了主线程之外,还存在一个任务列队,只要异步任务有了运行结果,就在任务列队中植入一个时间标记. 3)主线程完成所有 ...

  3. JavaScript的事件队列(Event Queue)---宏任务和微任务

    前言 在写代码的时候经常思考一个问题,到底是那个函数先执行,本身JavaScript是一门单线程的语言,意思就是按照顺序执行.但是加入一些setTimeout和promise的函数来又实现了异步操作, ...

  4. JavaScript同步模式,异步模式及宏任务,微任务队列

    首先JavaScript是单线程的语言,也就是说JS执行环境中,负责执行代码的线程只有一个.一次只能执行一个任务,如果有多个任务的话, 就要排队,然后依次执行,优点就是更安全,更简单.缺点就是遇到耗时 ...

  5. js的事件循环机制:同步与异步任务(setTimeout,setInterval)宏任务,微任务(Promise,process.nextTick)

    javascript是单线程,一切javascript版的"多线程"都是用单线程模拟出来的,通过事件循环(event loop)实现的异步. javascript事件循环 事件循环 ...

  6. Event Loop、 宏任务和微任务

    本文将介绍我自己对JS Event Loop 和 宏任务.微任务的理解. 二话不说先上图: 接下来将会针对此图讲解什么是Event Loop 什么事宏任务和微任务(其实聪明的你们通过图大体也能了解的是 ...

  7. JS中EventLoop、宏任务与微任务的个人理解

    为什么要EventLoop? JS 作为浏览器脚本语言,为了避免复杂的同步问题(例如用户操作事件以及操作DOM),这就决定了被设计成单线程语言,而且也将会一直保持是单线程的.而在单线程中若是遇到了耗时 ...

  8. 12个非常实用的JavaScript小技巧

    在这篇文章中将给大家分享12个有关于JavaScript的小技巧.这些小技巧可能在你的实际工作中或许能帮助你解决一些问题. 使用!!操作符转换布尔值 有时候我们需要对一个变量查检其是否存在或者检查值是 ...

  9. JavaScript小例子:复选框全选

    JavaScript小例子:复选框全选 这只是一个小例子,很简单,但是这个功能还是很常用的: 实现后效果如图: JavaScript代码: <script type="text/jav ...

  10. 11个不常被提及的JavaScript小技巧

    这次我们主要来分享11个在日常教程中不常被提及的JavaScript小技巧,他们往往在我们的日常工作中经常出现,但是我们又很容易忽略. 1.过滤唯一值 Set类型是在 ES6中新增的,它类似于数组,但 ...

随机推荐

  1. 解读注意力机制原理,教你使用Python实现深度学习模型

    本文分享自华为云社区<使用Python实现深度学习模型:注意力机制(Attention)>,作者:Echo_Wish. 在深度学习的世界里,注意力机制(Attention Mechanis ...

  2. 不到200行用Vue实现类似Swiper.js的轮播组件

    前言 大家在开发过程中,或多或少都会用到轮播图之类的组件,PC和Mobile上使用 Swiper.js ,小程序上使用swiper组件等. 本文将详细讲解如何用Vue一步步实现的类似Swiper.js ...

  3. Qt-qrencode开发-生成、显示二维码📀

    Qt-qrencode开发-生成二维码 目录 Qt-qrencode开发-生成二维码 1.概述 2.实现效果 3.编译qrencode 4.在QT中引入编译为静态库的QRencode 5.在Qt中直接 ...

  4. k8s——核心概念篇

    服务的分类 有状态 代表应用 nginx apache 优点 对客户端透明,无依赖关系,可以高效实现扩容,迁移 缺点 不能存储数据,需要额外的数据服务支撑 无状态 代表应用 MYSQL Redis 优 ...

  5. Wgpu图文详解(01)窗口与基本渲染

    写在前面 如果对Rust与Wgpu比较关注的同学可能在网络上搜到过@sotrh国外大佬编写的<Learn Wgpu>,以及国内大佬@jinleili的优秀翻译作品<学习 Wgpu&g ...

  6. 童年神机小霸王(七) Mapper

    首发公号:Rand_cs,求关注支持 Mapper mapper,这个概念来源于 memory mapping,又叫做 Memory Management Circuit,它是解决地址映射的一种电路, ...

  7. 性能分析: 快速定位SQL问题

    在数据库性能调优的实践中,SQL性能分析是至关重要的一环.一个执行效率低下的SQL语句可能会导致整个系统的性能瓶颈. 为了快速定位并解决这些问题,我们需要对SQL进行性能分析.本文将介绍一些常用的方法 ...

  8. SM4Utils加解密demo

    SM4Utils加解密demo package com.example.core.mydemo.sm4; import cn.org.bjca.utils.SM4Utils; public class ...

  9. Springboot项目密码加密器jasypt

    最新版依赖 <dependency> <groupId>com.github.ulisesbocchio</groupId> <artifactId>j ...

  10. PhantomReference 和 WeakReference 究竟有何不同

    本文基于 OpenJDK17 进行讨论,垃圾回收器为 ZGC. 提示: 为了方便大家索引,特将在上篇文章 <以 ZGC 为例,谈一谈 JVM 是如何实现 Reference 语义的> 中讨 ...