美文网首页js css html
js中的栈和消息队列

js中的栈和消息队列

作者: 扶得一人醉如苏沐晨 | 来源:发表于2023-03-26 10:07 被阅读0次

    一、事件循环(event loop)

    • 函数在每次执行时,都会产生一个执行环境
    • 执行环境负责存储函数执行时产生的一切数据
    • 问题:函数的执行环境要存储到哪里呢?
      函数的执行环境存储到了一个叫做调用栈的地方

    二、栈

    是一种数据结构,特点:后进先出

    2.1、调用栈(call stack)

    • 调用栈负责存储函数的执行环境
    • 当一个函数被调用时,它的执行环境会作为一个栈帧
    • 插入到调用栈的栈顶,函数执行完毕其栈帧会自动从栈中弹出
      image.png

    三、消息队列

    • 消息队列负责存储将要执行的函数
    • 当我们触发一个事件(如用户主动点击事件)时,其响应函数并不是直接就添加到调用栈中的
      因为调用栈中有可能会存在一些还没有执行完的代码
    • 事件触发后,JS引擎是将事件响应函数插入到消息队列中排队
      只有栈中任务执行完了,消息队列才会入栈
      如果用户点击多次,会在消息队列中排多个任务,遵循先进先出
      image.png

    相关文章

      网友评论

        本文标题:js中的栈和消息队列

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