在ecmascript6集/weakset详解
var =新集()
(1)s1.add
(2)s1.add
(3)s1.add
(1)s1.add
var =新集()
s2.add(A)
s2.add(A)
输出1, 2, 3
对于(S1中的var i){
console.log(我)
}
输出
对于(var I){
console.log(我)
}
它使用集合的Add方法添加元素,但不保存它。
集合构造函数也可以接受数组作为参数。
VaR S3 =新({ 1,2,3,1 })
s3.size / / 3
你可以看到重复的数字1仍然没有被放入,并且集合的长度是大小,不是长度。
需要注意的是,对于{或},它们是两个不同的对象。
新集合()
s4.add({ })
s4.add({ })
s4.size / / 2
1。遍历集(对于)
var =新集()
(1)s1.add
(2)s1.add
(3)s1.add
输出1, 2, 3
对于(S1中的var i){
console.log(我)
}
两。将集合转换为数组
var =新集()
(1)s1.add
(2)s1.add
/ / toArray
VaR A1 = array.from(S1)
Array.isArray(A1) / /真的
或
var = {…新集(S1)}
三。使用set来度量数组
功能不同(ARR){
返回array.from(新(ARR))
/ /返回新(ARR){…}
}
作为
集的属性
构造函数
大小
集合法
是否有元素存在
添加元素添加元素
删除元素
明确的删除所有元素
钥匙
价值观
条目
foreach遍历元素
地图
滤波器
四、WeakSet
WeakSet,像集,不存储重复的元素,但也有一些差异
1。存储对象类型元素
WS =新weakset()
Ws.add(1)
在错误的跟踪下
2。只添加三个方法,而不是遍历、没有大小属性,等等。
WS =新weakset()
ws.size / /未定义
ws.foreach / /未定义
MDN的解释
存储在weakset对象值的对象的弱引用,如果没有其他的引用对象的变量或属性的值,目标值会被视为垃圾。正因为如此,weakset无法枚举的对象,有没有办法让它所包含的元素
weakset主要是用来存储节点,不会导致内存泄漏时,这些节点被删除的文件。
以上是本文的全部内容,希望大家能喜欢。