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 差不多