javascript可用数组push/pop实现栈,class封装含push、pop、peek、isempty、size方法;示例用于浏览器历史;注意判空和封装性;亦可直接用数组轻量实现。

JavaScript 实现一个简单的前端栈结构,核心就是利用数组的 push() 和 pop() 方法,它们天然符合栈的“后进先出”(LIFO)特性。不需要引入额外依赖,几行代码就能封装出清晰、可复用的栈类。
用 class 封装一个基础栈
定义一个 Stack 类,包含入栈、出栈、查看栈顶、判断是否为空、获取大小等基本操作:
- push(item):添加元素到栈顶(数组末尾)
-
pop():移除并返回栈顶元素;若为空,可返回
undefined或抛错 - peek():只查看栈顶元素,不修改栈
- isEmpty():判断栈是否为空
- size():返回当前元素个数
示例代码:
在 Java 中初始化和管理阿里云 SDK客户端。包括单例模式、线程安全、endpoint 与 region 配置、VPC 终端节点、同步与异步等。
class Stack {
constructor() {
this.items = [];
}
<p>push(item) {
this.items.push(item);
}</p><p>pop() {
return this.items.pop();
}</p><p>peek() {
return this.items[this.items.length - 1];
}</p><p>isEmpty() {
return this.items.length === 0;
}</p><p>size() {
return this.items.length;
}
}</p>实际使用示例
比如模拟浏览器的「前进/后退」逻辑片段(简化版):
const historyStack = new Stack();
historyStack.push('/home');
historyStack.push('/products');
historyStack.push('/product/123');
<p>console.log(historyStack.peek()); // '/product/123'
console.log(historyStack.pop()); // '/product/123'
console.log(historyStack.size()); // 2</p>注意事项和小优化
- 避免直接暴露
this.items,保持封装性;如需遍历,可加一个toArray()方法 - 在
pop()或peek()中建议判空,防止undefined引发意外(尤其在生产环境) - 如果需要限制栈容量,可在
push()中加入长度检查,超出时抛出错误或自动丢弃栈底元素
不用 class 的轻量写法(函数式风格)
如果只是临时用,也可以直接用数组 + 约定方法名:
const stack = []; stack.push(1); // 入栈 stack.push(2); const top = stack[stack.length - 1]; // 查看栈顶 const item = stack.pop(); // 出栈
这种写法简单直接,适合脚本或原型开发,但缺乏结构约束和复用性。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










