栈是一个后进先出的数据结构。
栈的结构可以理解为成语:后来居上。 后进入的数据是最先出来的数据。
需要注意的是,本篇博文提到的栈是数据结构的一种,而不是内存空间中的栈空间。
将数据放入的行为可以叫做push,也就是入栈,拿出数据则可以叫做pop,也就是出栈。
在js中可以通过数组的形式来模拟栈结构。
// 创建一个空白的数组,来模拟栈
const arr = [];
// 利用push方法来模拟进栈操作
arr.push(1);
arr.push(2);
// 利用pop方法来模拟出栈操作
const item1 = arr.pop();
const item2 = arr.pop();
上面代码中,主要做了下面的几件事:
- 通过数组模拟stack栈结构
- 利用push 先后入栈 1 和 2
- 利用pop 分别做数据的出栈
可以利用调试工具关注出栈和入栈的顺序。
可以关注到当入栈的代码执行完毕之后,arr中的数据顺序是1在前,2在后, 符合栈数据结构的特点。
当出栈完成操作后,可以关注到先出栈的是2(item1的值),后出栈的是1(item2的值)。
同样符合栈的结构特点。