美文网首页
JavaScript 执行机制(1/33)

JavaScript 执行机制(1/33)

作者: stanf1l | 来源:发表于2019-01-20 22:42 被阅读0次

参考文章:
· 这一次,彻底弄懂 JavaScript 执行机制
· 详解JavaScript中的Event Loop(事件循环)机制

看完全文算是有一个比较全面的了解了,有一点拎出来说一下:当前正在执行的宏任务+此时微任务队列中的所有微任务 可以被认为是一个Event loop。所有异步事件在被触发的时候会将此异步任务装进宏任务队列中去。当主线程执行完了一轮loop后会从宏任务队列中取出一个任务执行,接着执行微任务队列中的所有任务,至此一轮循环结束,如此反复。
(微任务回调中的微任务依然在本轮loop执行)

按照这个流程,下面这段代码的结果应该很好预测:

console.log(1)
setTimeout(()=>{
    console.log(2)
    setTimeout(()=>{
        console.log(3)
    })
})
Promise.resolve().then(()=>{
    console.log(4)
})
console.log(5)
setTimeout(()=>{
    console.log(6)
})
//1 5 4 2 6 3

第一轮loop结束后的
宏任务队列:

  1. console.log(2)
  2. setTimeout(...)
  3. console.log(6)

当拿出队列中的第二个任务的时候,因为延迟为0,所以直接将任务取出放入队列尾,此时宏任务队列:

  1. console.log(6)
  2. console.log(3)

分析进程的时候可以画出如下表格:

image.png
其中包括了宏任务队列微任务队列调用堆栈控制台输出四个部分。从 run script 开始直到所有队列及堆栈为空。

宏任务一般是:整体代码 script,setTimeout,setInterval。
微任务:Promise,process.nextTick。

相关文章

  • JavaScript 执行机制(1/33)

    参考文章:· 这一次,彻底弄懂 JavaScript 执行机制· 详解JavaScript中的Event Loop...

  • Javascript执行机制(setTimeout/Promis

    遇到的一道关于javascript执行机制的面试题 Javascript执行机制(setTimeout/Promi...

  • 前端基础

    这一次,彻底弄懂 JavaScript 执行机制 本文的目的就是要保证你彻底弄懂javascript的执行机制,如...

  • JavaScript文章

    这一次,彻底弄懂 JavaScript 执行机制 本文的目的就是要保证你彻底弄懂javascript的执行机制,如...

  • 2020-02-16 javascript的执行机制

    javascript的执行机制 执行顺序探讨 关于javascript javascript是一门单线程语言,在最...

  • JavaScript执行机制

    原文 博客原文 大纲 1、场景分析2、执行机制相关知识点3、以实例来说明JavaScript的执行机制4、相关概念...

  • 10分钟理解JavaScript引擎的执行机制

    深入理解JavaScript引擎的执行机制

  • JavaScript 执行机制

    全局环境:JavaScript代码运行起来会首先进入该环境 函数环境:当函数被调用执行时,会进入当前函数中执行代码...

  • JavaScript 执行机制

    Reference 这一次,彻底弄懂 JavaScript 执行机制 Summery JavaScript 单线程...

  • JavaScript 执行机制

    五个线程 js引擎线程: 执行js代码GUI线程: 绘制用户界面http网络请求线程: 处理网络请求, 等请求返回...

网友评论

      本文标题:JavaScript 执行机制(1/33)

      本文链接:https://www.haomeiwen.com/subject/ymbfjqtx.html