什么是事件循环Event Loop

一、含义

事件循环是指不断从任务队列中取出任务,并执行其对应的回调函数的过程。

二、事件循环流程

1.主线程执行同步任务,直到遇到异步任务时,将其回调函数他家到任务队列中,然后继续执行同步任务

2.当所有同步任务执行完之后,主线程会去任务队列中查找是否有研究完成的异步任务的回调函数需要执行,如果有,则会按照回调函数添加的先后顺序执行它们。

3.执行完所有研究完成的异步任务回调后,重复上面步骤,知道任务队列中没有任何任务

三、什么是同步和异步任务

同步任务:

同步任务是按照代码的顺序依次执行的任务,每个任务执行完成后才会执行下一个任务。同步任务会阻塞代码的执行,直到任务完成后才会继续执行下一条语句。同步任务是阻塞式的,意味着在同步任务执行期间,代码的执行会等待任务完成,不会进行其他任务的处理。

常见的同步任务包括变量赋值、函数调用、循环、同步文件读写等。
异步任务:

异步任务是在执行过程中不会阻塞代码执行的任务。异步任务会被提交给其他部分(如浏览器环境或操作系统)进行处理,而不会立即返回结果。相反,JavaScript 引擎会继续执行后续的代码,不会等待异步任务的完成。

常见的异步任务处理机制包括回调函数、Promise、async/await 等。

四、什么是宏任务和微任务

在 JavaScript中任务分为同步和异步任务,其中异步任务又分为两种:宏任务和微任务

宏任务和微任务的执行顺序:总方针是先同步再异步,异步中先微任务,再宏任务 (重点)
常见宏任务:

  • script标签中的代码

  • setTimeout

  • setInterval

  • setImmediate(Node.js)

  • IO

  • UI 渲染

  • MessageChannel
    常见微任务:

  • Promise.then(非 new Promise)

  • async

  • await

  • process.nextTick(Node.js)

  • Object.observe

  • MutationObserver

详细地址:https://juejin.cn/post/7255511957701148727?searchId=2023072617180077929180024F361764EC

相关推荐
子兮曰6 小时前
Bun v1.3.14 深度解析:Image API、HTTP/3、全局虚拟存储与五十项变革
前端·后端·bun
kyriewen7 小时前
今天,百年巨头一次砍了9200人,而一个离职科学家的实话让全网睡不着觉
前端·openai·ai编程
问心无愧05138 小时前
ctf show web 入门42
android·前端·android studio
kyriewen8 小时前
老板逼我上AI,我偷偷在浏览器里跑LLaMA,省下20万API费
前端·react.js·llm
Beginner x_u8 小时前
前端八股整理(手写 02)|数组转树、数组扁平化、随机打乱一个数组
前端·数组·数组转树·数组扁平化
KaMeidebaby8 小时前
卡梅德生物技术快报|禽类成纤维细胞 FISH 实验:鸟类性别染色体基因定位技术实现与数据验证
前端·数据库·其他·百度·新浪微博
天若有情6739 小时前
前端高阶性能优化:跳出传统懒加载与预加载,基于用户行为做轻量预判加载
前端·性能优化
小小小小宇9 小时前
前端转后端:SQL 是什么
前端
张元清10 小时前
React Observer Hooks:7 种监听 DOM 而不写样板代码的方式
前端·javascript·面试
广州华水科技10 小时前
单北斗GNSS变形监测是什么?主要有怎样的应用与优势?
前端