Symbol:
属性名属于 Symbol 类型,就都是独一无二的
Set:
类似数组的能够存储过个值的类型,成员的值都是唯一的,没有重复的值
有构造函数
set.add(值) 添加值
set.size 获取长度
set.delete() 删除值
set.has() 判断包含
Map:
本质上是键值对的集合
有构造函数
对象.set(key, value)
对象.get(key)
对象.delete()
对象.has()
Map 结构原生提供三个遍历器生成函数和一个遍历方法。
Map.prototype.keys() :返回键名的遍历器。
Map.prototype.values() :返回键值的遍历器。
Map.prototype.entries() :返回所有成员的遍历器。
Map.prototype.forEach() :遍历 Map 的所有成员
案例代码如下:
//Symbol 类型
let n1 = 10;
let n2 = Symbol(10);
let n3 = Symbol(10);
console.log(n1 === n2);
if(n1 == n2){
console.log("一样")
}else{
console.log("不一样")
}
console.log(n2 === n3);
//set集合
const mySet = new Set();
mySet.add('abc');
mySet.add(123);
mySet.add(true);
for(let item of mySet){
console.log(item)
}
//console.log(mySet[0]) 没有下标
const mySet2 = new Set([1,2,2,3,3,3]);
console.log(...mySet2);
console.log(Array.from(mySet2));
mySet.delete('abc');
console.log(mySet.size);
console.log(mySet.has('abc'));
// Map集合
const myMap = new Map();
myMap.set('a',123)
myMap.set(true,"haha")
console.log(myMap)
console.log(myMap.get('a'))
console.log(myMap.get(true))
myMap.delete('a');
console.log(myMap.size);
console.log(myMap.has(123));