ES6小知识续集


1:set的一些使用

 1 //创建set结构
 2 const arr = new Set()
 3 arr.add(30)
 4 arr.add(40)
 5 arr.add(50)
 6     //set里面元素不能重复
 7 arr.add(30)
 8 console.log(arr);
 9 //应用场景 数组去重
10 const arr1 = [10, 20, 10, 30, 40, 50]
11 const names = ['lili', 'qiiq', 'yaya']
12 const setarr1 = new Set(arr1)
13 const setarr2 = new Set(arr1)
14     //set支持展开运算符
15 const set2 = [...setarr1]
16     //转换成为数组
17 const set3 = Array.from(setarr1)
18 console.log(setarr1);
19 console.log(set2);
20 console.log(set3);
21 //size属性
22 console.log(setarr1.size);
23 //set方法
24 setarr1.add(60)
25 setarr1.delete(20)
26 setarr2.clear()
27 setarr2.has(20)
28 setarr1.has(20)
29 //遍历
30 setarr1.forEach(element => {
31     console.log(element);
32 });
33 for (const item of setarr1) {
34     console.log(item);
35 }

 2:WeakSet和Set的区别

区别:只能存储对象类型,不能存放基本数据类型 WeakSet对象是一个弱引用

从根对象开始,有引用指着就不会被回收

强引用 strong reference 在GC回收时候是有效的

弱引用 weak reference GC不把弱引用当条线

总结弱引用:通过线获取值,但是可以直接回收

应用场景:想要只能创建的对象才能调用某方法