/** * 栈模型 * 栈(stack)是限制插入和删除只能在一个位置上进行的表 * 该位置是表的末端叫做栈的顶(top) * 对栈的基本操作有 push 进栈和 pop 出栈,前者相当于插入,后者则是删除最后插入的元素 */class Stack { constructor() { /** 栈数据 */ this.items = []; /** 记录栈顶位置 */ this.top = 0; } /** 进栈 */ push(element) { this.items[this.top++] = element; } /** 出栈 */ pop() { return this.items[--this.top]; } /** 查看栈顶元素 */ peek() { if (this.isEmpty) return "Empty"; return this.dataStore[this.top - 1]; } /** 返回栈内元素总数 */ get length() { return this.items.length; } /** 判断是否空栈 */ get isEmpty() { return !this.items.length; } /** 清除栈 */ clear() { this.items = []; }}// 初始化一个栈var stack = new Stack();stack.push(1);stack.push(2);stack.pop();stack.push(4);console.log(stack);console.log(stack.isEmpty);console.log(stack.length);