Set 和 Map 数据结构
Set
Set
成员值唯一,没有重复的值,可以用来做数组和字符串去重。向 Set
加值不会发生类型转换,且对于重复添加 NaN
,只会添加一个 NaN
。Array.from
可以把 Set
转换为数组。
size
,返回实例的成员总数add
,添加值delete(value)
,删除某个值,返回一个布尔值,表示删除成功has(value)
,返回一个布尔值,表示该值是否为Set
的成员clear
,清除所有成员,没有返回值keys
,返回键名的遍历器values
,返回键值得遍历器entries()
,返回所有成员的遍历器forEach()
,遍历Set
的所有成员
Array.from()
有第二个参数,这个参数类似于map
WeakSet
WeakSet
成员只能是对象,不能是其他类型值- 对象都是弱引用,即垃圾回收机制不考虑
WeakSet
对该对象的引用,也就是说,如果其他对象不再引用该对象,那么垃圾回收机制会回收该对象所占内存,不考虑对象还存在与WeakSet
中。 WeakSet
可以接受一个数组或类似数组的对象作为参数。- 没有
size
属性,且无法遍历,是因为WeakSet
成员是弱引用,可能遍历刚结束,成员就取不到
Map
size
,返回实例的成员总数delete(value)
,删除某个值,返回一个布尔值,表示删除成功has(value)
,返回一个布尔值,表示该值是否为Map
的成员clear
,清除所有成员,没有返回值keys
,返回键名的遍历器values
,返回键值得遍历器entries()
,返回所有成员的遍历器forEach()
,遍历Map
的所有成员
WeakMap
基本上和 WeakSet
差不多