Set
1 类似于数组,但成员的值都是唯一的
2 初始化:
let set=new Set();
let set1=new Set([1,2,3,4,4]);
//去除数组重复成员:
[...new Set(array)]
3 向set加入值时不会发生类型转换,因此5和‘5‘是不同的值;但是在set内部,只能添加一个NaN;传入两个空对象被认为是两个值。
4 set实例的属性和方法:
属性:
- Set.prototype.constructor
- Set.prototype.size:返回set实例的成员总数。
方法: - add():返回set本身
- delete():删除某个值,返回布尔值
- has():表示是否是set成员
- clear():清除所有成员
5 遍历操作
- keys():返回键名的遍历器
- values():
- entries():返回键值对
- forEach():使用回调函数遍历每个成员
- 列表内容
WeakSet
1 成员只能是对象,而不能是其他成员的值。
2 对象都是弱引用,即垃圾回收机制不考虑weakset对该对象的引用,也就是说,如果其他对象都不再引用该对象,那么垃圾回收机制会自动回收该对象占有的内存。
因此weakSet不可遍历。
Map
map结构提供了“值-值“的对应,是一种更完善的hash
属性和方法:
- size
- set(key, value)
- get(key)
- has(key)
- delete(key)
- clear()
遍历:
- keys()
- values()
- entries()
- forEach()