ES6 新添加的一种集合类型
Set 很多方面像是 Map 的加强版, 因为他们的API和行为基本是一样的
- set的创建 
const set = new Set() - set 创建时的初始化实例 
const set = new Set(["val1", "val2"]), 传入一个可迭代对象, 和 Map 一样 , 或者自定义迭代对象 - Set的API
- add () 添加的方法和 Map 不同, Map 使用 set() , 使用 add 返回的是 Set 实例
 - has
 - delete : 返回一个布尔值
 - clear
 - size
 
 
- set 的值可以是任何类型
 - set 使用 对象 {} 或 其他引用类型的集合 [] , 做值时,添加/修改 对象,数组是可以的,set不会发生改变
 
- Set 提供一个 迭代器 (Iterator) , 能通过 Values()  和 keys() 方法取得迭代器 
SetIterator- 或者使用 
set[Symbol.iterator]获取 Set的迭代器,set[Symbol.iterator]方法引用了values()方法 。 
 - 或者使用 
 - Set 可以使用 扩展运算符展开 […set] -> 转为数组
 - 可以使用 forEach循环,传入两个参数,用于重写回到内部的 this 值
 循环 set 集合时, 字符串原始值 不会被修改
for (let value of set.values()) {value = 'test'}, 不会修改 set 的值
set能够修改对象属性。 {} / []
