- 栈是一种遵从后进先出(LIFO)原则的有序集合。
- 新添加或待删除的元素都保存在栈的同一端,称作栈顶,另一端就叫栈底。
- 案例:实现历史记录
- 下划线命名约定
- 只是一种约定,不能真正保护数据
- 利用Symbol类型不可变的特性,实现属性
- Symbol类型不可变,每次用Symbol创建的数据均不相同
- 普通JS方法无法枚举Symbol属性值
- 外部拿不到Symbol数据的引用,即认为拿不到属性本身
- 枚举Symbol需要用 Object.getOwnPropertySymbols 方法
- 能被破解
- 利用WeakMap弱引用不可枚举的特性,实现属性
- 靠谱
- ECMAScript类属性提案
- 队列是一种遵循先进先出(FIFO)原则的有序集合。
- 队列在尾部添加新元素,并从顶部移除元素。
- 案例:击鼓传花
- 允许同时从前端和后端添加和移除元素的特殊队列。
- 案例:回文检查