什么是宏任务与微任务以及它们的执行顺序

文章目录

    • 宏任务
    • 微任务

微任务和宏任务是指在 JavaScript 中执行异步任务的两种不同的队列。

宏任务

宏任务: 宏任务是指由浏览器发起的、在事件循环中执行的异步任务。常见的宏任务包括:

  • setTimeout
  • setInterval
  • I/O 操作
  • UI 渲染
    宏任务的执行顺序是在每一轮事件循环结束时执行,在下一轮事件循环开始前执行。

微任务

微任务是指由 JavaScript 引擎发起、在当前宏任务执行结束后立即执行的异步任务。常见的微任务包括:

  • Promise 的回调函数
  • nextTick

微任务会在当前宏任务执行完毕后、下一个宏任务执行之前执行。
在事件循环中,每轮循环分为以下几个阶段:

  • 执行栈: 执行同步任务,将宏任务加入宏任务队列。
  • 消息队列检查: 将消息队列中的宏任务添加到执行栈,准备执行。
  • 微任务队列: 执行微任务队列中的所有任务。
  • 渲染: 更新页面渲染。
  • 宏任务执行: 执行宏任务队列中的一个任务,重复上述过程。

关于微任务和宏任务的执行顺序:

  • 每次执行栈为空时,会先执行微任务队列中的所有任务。
  • 微任务执行完毕后,会检查是否有渲染工作,执行渲染。
  • 渲染完成后,执行宏任务队列中的一个任务,然后重复上述步骤。

总体来说,微任务的优先级高于宏任务,微任务会在宏任务之前执行。这意味着微任务中的任务会优先于下一个宏任务执行,保证了相对较快的执行速度。

你可能感兴趣的:(javascript,前端,开发语言)