目录
1. ES5的数据类型:number、string、boolean、bigint、null、undefined、
6. WeakSet集合:只是一个对象集合。即集合中只能存放对象。
1. 数据的存放格式:采用 key-value(键值对) 的方式进行存放。
一. Symbol类型
1. ES5的数据类型:number、string、boolean、bigint、null、undefined、
object
2. ES6新增的Symbol:表示一个唯一的值
a. 直接创建:let 变量名 = Symbol
b. 间接创建:传字符串 let 变量名 = Symbol(字符串)
二. Set 集合
是一种数据结构,里面不能存放重复的值。可以用于数组去重、字符串去重
1. 创建方式:
a、使用new运算符:let 变量 = new Set()
b、通过数组来创建:let 变量名 = new Set( [1,2,3,5,6] ) ,去除重复的元素
let s1 = new Set();//创建一个空集合
console.log(s1);
let arr = [1,2,3,2,0,3,5];
let s2 = new Set(arr);
console.log(s2);//{1,2,3,0,5}
2. 常用的方法:
a. add(val): 向集合中添加元素
b. delete(val):删除集合中的元素。删除成功返回true,删除失败返回false
c. has(val):判断val在集合中是否存在,若存在返回true,不存在返回false
d. clear():清空集合
e. values():获取的是集合中所有value
f. keys(): 获取集合中的key
强调:Set集合也是key-value格式,它的key和value是相同的
3. Set集合的属性:size集合中存放元素的个数
4. Set的遍历方法:
a. for ... of
for(let i of s1.keys()){
console.log(i)
}
b . forEach
s1.forEach(function(value,key){//set集合中key 和value相同
console.log(value+' ---- '+key)
})
5. 集合运算
a. 并集:
let setA = new Set([4,5,6])
let setB = new Set([5,6,7])
let bj = new Set([...setA,...setB])
console.log(bj)
b. 交集 和差集
let s1 = new Set([4,5,6]);
let s2 = new Set([5,6,7]);
let bj = new Set([...s1,...s2]);//并集
// console.log(bj);
let jj = [...s1].filter(function(item){
return s2.has(item);//交集
return !s2.has(item);//s1的差集
})
6. WeakSet集合:只是一个对象集合。即集合中只能存放对象。
它支持 add,has 和 delete 方法
三. Map集合
1. 数据的存放格式:采用 key-value(键值对) 的方式进行存放。
采用这种方式存放数据的有:
(1)对象:属性对应的是key(键),属性值对应的是value(值)
(2)JSON:是常用的一种前后台数据交换的格式
(3) Map
2. Map的定义:
Map是一种数据结构(Hash结构),在ES6中是Map一种存放许多键值对的有序列表
3. Map的使用方法
1)属性:size —- 存放的是Map中的元素个数
2)方法:
a、Map():构造方法。用来创建Map对象,不带参数表示创建空的Map,即size属
性值为0
b、set(key,value):向Map中添加数据
c、get(key):获取键为key的value
d、has(key):判断Map中是否存在key
e、delete(key):删除key
f、clear():清空Map
g、keys():返回Map中的所有key
***注意:
(1)Map中的key不能重复,但是value可以重复
(2)keys()返回的是Map中所有key集合 —— keys ; (返回的类型是Set)
(3)在Map中通过key可以得到对应的value,反之则不行
h、values():返回Map中的所有value
i、entries():可以获取Map的所有成员(即所有的key-value)
j. forEach循环遍历Map集合和for...of遍历Map集合:
let m2 = new Map();
//相集合中添加元素
m2.set('id', 's1001').set('dep', '开发部').set('phone', '114');
console.log(m2.keys());
for (let key of m2.keys()) {
let str = `${key} ====> ${m2.get(key)}`;
console.log(str);
}
m2.forEach(function (value, key) {//遍历map集合
console.log(key, ':', value);
})
console.log('-------------------')
for(let [key,value] of m2.entries()){//let [key,value] of m2
console.log(key,':',value);
}
4. Map转换为数组
解构整个Map集合:
解构Map的keys与values:
let m3 = new Map([
[1,'北京'],
[2,'上海'],
[3,'深圳'],
]);
//解构Map
let arr_m3 = [...m3];
console.log(arr_m3);
//解构Map的keys
let keyArr = [...m3.keys()];
console.log(keyArr);
//解构Map的values
let valueArr = [...m3.values()];
console.log(valueArr);