JavaScript 笔记(二)事件循环机制

一、事件循环机制
  1. 定义:事件循环是 JavaScript 中一种重要的异步执行机制。
  2. 作用:管理和协调各种异步任务的执行顺序,保证 JavaScript 代码的执行顺序和预期一致。
  3. 组成部分:
    3.1 主线程(调用栈):执行任务;
    3.2 任务队列:存放异步任务;
    3.3 事件循环线程:检查任务队列里面的异步任务,有的话将异步任务调入主线程执行。
  4. 任务队列:
    4.1 宏任务队列:setInterval()、setTimeout()、setImmediate()、ajax、事件绑定;
    4.2 微任务队列:new Promise() 后的 then 与 catch 函数、new MutaionObserver()、process.nextTick(Nodejs)。
  5. 执行过程:
    5.1 初始的同步任务可以看作是一次宏任务的执行;(实际上不是宏任务)
    5.2 宏任务执行完毕,事件循环线程自动检查【微任务队列】并将所有检查到的 微任务 调入主线程执行;(若检查无微任务,则直接去检查宏任务队列)
    5.3 所有微任务执行完毕,事件循环线程自动检查【宏任务队列】并将检查到的 宏任务 调入主线程执行;(若无宏任务,任务队列为空)
    5.4 重复 5.2,5.3 步骤,直至任务队列为空的过程称之为事件循环。
  6. 注意点:
    6.1 主线程中执行 任务 的时候会将遇到的 异步任务 添加到任务队列中;(宏任务进入宏任务队列,微任务进入微任务队列)
    6.2 微任务队列 可以看作是 主线程执行的任务 中的随身携带的任务小袋子,当主任务完成之后,自然也要清空任务小袋子。

 

 

引用一下 @恰巧喜欢 大佬的图:

 

posted @ 2023-07-18 23:26  唯一念  阅读(64)  评论(0编辑  收藏  举报