数据结构 ~ 栈、队列

栈

一个后进先出的数据结构、JS中没有栈,可以使用 Array 模拟

javascript 复制代码
const stack = []
stack.push(1) // 入栈
stack.push(2) // 入栈
const item1 = stack.pop() // 出栈
const item2 = stack.pop() // 出栈

以上代码可以使用 nodeJs 断点调试(F5启动);

可以看到执行步骤为入栈了数据1、入栈了数据2,出栈了数据2,出栈了数据1;

后入栈的数据先出栈(后进先出)

javascript 复制代码
const fun1 = () => {
  fun2()
}
const fun2 = () => {
  fun3()
}
const fun3 = () => {}
fun1()

同样可以断点调试以上代码;

执行步骤:入栈fun1、入栈fun2、入栈fun3、出栈fun3、出栈fun2、出栈fun1(后进先出)

十进制转换二进制:

javascript 复制代码
const num = 35
console.log(num.toString(2)) // 100011

队列

一种先进先出的数据结构、JS中没有栈,同样可以使用 Array 模拟

javascript 复制代码
const queue = []
queue.push(1)
queue.push(2)
const item1 = queue.shift()
const item2 = queue.shift()

执行步骤为入栈了数据1、入栈了数据2,出栈了数据1,出栈了数据2(先进先出)

事件循环

当 JS 所有同步代码执行完会启动事件循环机制,而 WebApis中的回调会推送到回调队列中,然后依此执行,先进先出。

相关推荐
Ada's6 小时前
【计算机基础系列】003:Python数据结构
开发语言·数据结构·python
传人once9 小时前
页面中心圆圈放大效果如何写
开发语言·javascript·ecmascript
wanderist.10 小时前
线性筛法详解:从筛质数到欧拉函数、Möbius 函数与约数函数
java·数据结构·算法
All for pursuit.10 小时前
【设计-1】208.实现Trie (前缀树)
数据结构·c++·算法·leetcode
光影少年11 小时前
为什么 JavaScript 中 0.1 + 0.2 !== 0.3,如何让其相等?
前端·javascript·算法
程序员清风11 小时前
哈希表:从键值映射到高效查找
数据结构·哈希算法·散列表
梓雨枔13 小时前
JavaScript+快速学习,简单好用~
javascript·学习
木易 士心13 小时前
JavaScript 闭包原理和实践深度解析
开发语言·javascript·ecmascript
ITOM运维行者13 小时前
PHP性能监控怎么做?从响应时间到慢函数的6个关键指标
前端·javascript·后端
hai_android14 小时前
一个公式看懂动态跨表查找:P8 + VLOOKUP
前端·javascript·vue.js