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

js中的栈和消息队列

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

一、事件循环(event loop)

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

二、栈

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

2.1、调用栈(call stack)

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

三、消息队列

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

相关文章

  • JavaScript⑦数组队列

    栈和队列: js中没有专门的栈和队列类型,都是用普通该数组模拟的。 何时: 只要希望按照顺序使用数组元素时 栈: ...

  • WebViewJavascriptBridge源码解读

    JS中维护一个消息队列 JS和Native都封装消息写到该队列,然后通知对方处理 JS注册Handler JS中维...

  • js

    栈和队列: js中没有专门的栈和队列类型,都是用普通该数组模拟的。 何时: 只要希望按照顺序使用数...

  • javascript第七章

    栈和队列: js中没有专门的栈和队列类型,都是用普通该数组模拟的。 何时: 只要希望按照顺序使用数组元...

  • JS7

    栈和队列: js中没有专门的栈和队列类型,都是用普通该数组模拟的。 何时:只要希望按照顺序使用数组元素时 栈:一端...

  • javaScript数组练习等......

    栈和队列: js中没有专门的栈和队列类型,都是用普通该数组模拟的。 何时:只要希望按照顺序使用数组元素时 栈:一端...

  • JavaScript第七章

    栈和队列:js中没有专门的栈和队列类型,都是用普通该数组模拟的。何时:只要希望按照顺序使用数组元素时。栈:一段封闭...

  • JavaScript 异步

    异步机制详解 才清晰知道浏览器里面的JS引擎运行来跑js,js中事件循环包含栈(用来执行同步任务),消息队列(用来...

  • JS中的栈、队列和链表 -- 队列

    栈和队列是数据结构里的基本概念之一。所以今天讨论的内容是如何在JavaScript中实现一个队列。 什么是队列 顾...

  • 2018-08-01 js栈与队列补充

    栈与队列之js(ts)手写(补充)

网友评论

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

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