在ES5中的聚合数据有: 对象和数组
在ES6中又添加了四种聚合数据: Set、WeakSet、Map、WeakMap
所以在ES6中共有六种聚合数据:对象、数组、Set、WeakSet、Map、WeakMap
聚合数据 - set
Set是实现了迭代器接口的去重数组
在去重的时候不会做类型转换, 由于Set对象实现了数组迭代器接口,所以可以使用for of语句遍历该对象
内部提供了大量的方法用于操作该对象,属性以及方法如下:
size: 获取数据的长度(属性)
has: 判断是否包含某个属性
add: 添加数据
delete: 删除某项数据
clear: 清空数据
forEach: 用于遍历数据
keys、values、entries是用于获取迭代器接口
聚合数据 - WeakSet
WeakSet对象是弱set对象,成员只能是引用类型数据
注意:不能添加空对象null
由于是弱set对象,因此存在的方法较少,只有添加add,删除delete,判断has是否拥有三个方法
其它size属性,forEach,clear,keys,entries,values等方法都不存在了
内部提供的方法:
delete: 删除数据
has: 判断是否包含某个属性
add: 添加数据
由于weakset不能被垃圾回收机制自动回收,因此要慎用
聚合数据 - Map
Map是一个超级对象
传统的对象所有属性名称都必须是字符串
但是Map对象中,定义的属性名称可以是任意类型(7种类型都可以)
通过 new map创建map对象,实现了迭代器接口对象,因此可以使用for of循环遍历
内部也提供了大量的方法用于操作该对象,属性以及方法如下:
size: 获取数据的长度(属性)
has: 判断是否包含某个属性
delete: 删除某项数据
clear: 清空数据
get: 获取数据
set: 设置数据
forEach: 用于遍历数据
keys、values、entries是用于获取迭代器接口
聚合数据 - WeakMap
WeakMap对象是弱map对象,属性名称只能是引用类型的数据
注意:不能添加空对象null
由于是弱map对象,因此少了很多方法,只有set, get, delete, has方法
其余的size属性,forEach, keys,values,entries,clear等方法都不存在了
内部提供操作该对象的方法:
delete: 删除某项数据
has: 判断是否包含某个属性
get: 获取数据 set: 设置数据
由于weakmap不能被垃圾回收机制自动回收,因此要慎用