一、Set
1、Set本身是一个构造函数,用来生成Set数据结构。
2、Set函数可以接受一个数组(或类似数组的对象)作为参数,用来初始化。
3、向Set加入值的时候,不会发生类型转换,所以5
和"5"
是两个不同的值。Set内部判断两个值是否不同,使用的算法叫做“Same-value equality”,它类似于精确相等运算符(===
),主要的区别是NaN
等于自身,而精确相等运算符认为NaN
不等于自身。
4、Set实例的属性和方法:
- Set.prototype.constructor:构造函数,默认就是
Set
函数。 Set.prototype.size
:返回Set
实例的成员总数。- Set实例的方法分为两大类:操作方法(用于操作数据)和遍历方法(用于遍历成员)。下面先介绍四个操作方法。
add(value)
:添加某个值,返回Set结构本身。delete(value)
:删除某个值,返回一个布尔值,表示删除是否成功。has(value)
:返回一个布尔值,表示该值是否为Set
的成员。clear()
:清除所有
5、遍历操作
- keys():返回一个键名的遍历器
values()
:返回一个键值的遍历器entries()
:返回一个键值对的遍历器forEach()
:使用回调函数遍历每个成员
二、Map
1、Map构造函数接受数组作为参数
2、对同一个对象的引用,Map结构将其视为同一个键
3、实例的属性和操作方法:
- size属性:size属性返回Map结构的成员总数。
- set(key, value):set方法设置
key
所对应的键值,然后返回整个Map结构。 - get(key):get方法读取
key
对应的键值,如果找不到key
,返回undefined
。 - has(key):has方法返回一个布尔值,表示某个键是否在Map数据结构中。
- delete(key):delete方法删除某个键,返回true。如果删除失败,返回false。
- clear():clear方法清除所有成员,没有返回值。
4、遍历方法
Map原生提供三个遍历器生成函数和一个遍历方法。
- keys():返回键名的遍历器。
- values():返回键值的遍历器。
- entries():返回所有成员的遍历器。
- forEach():遍历Map的所有成员。