Set
- ES6 新增数据结构,类似数组,成员是唯一的,可以存放各种数据类型
- 可以遍历
1 | let a = {} |
WeakSet
- 与 Set 类似,不重复的值的集合
- 只能储存对象,WeakSet 中的对象是被 弱引用的,当其他地方没有引用到该对象时,垃圾回收机制不考虑 WeakSet 对该对象的引用,会回收掉该对象。
- WeakSet 不能遍历,他里面的对象随时可能会消失
- 没有 size 属性,不能获取到 WeakSet 的长度,不可遍历
- 可以用来储存 DOM 节点,而不用担心这些节点从文档移除时,引发内存泄漏。
1 | let a = { 1: 1 } |
Map
- 键值对的集合,键唯一,可以是任何数据类型,可遍历
- JS 对象的键只能是字符串,
1 | let a = {} |
WeakMap
- 键值对的集合,键唯一,只能是对象(
null
除外) - 值可以是任何数据
- 和 WeakSet 类似,当其中的键没有其他地方引用时会被回收。
- 可以用来对 DOM 节点的事件绑定。
- 不可遍历
1 | let a = {} |