Set WeakSet Map WeakMap

都是接受一个数组作为参数,将数组成员加入自身
set
没有重复值,去重很好用
map
key保存的是地址(对象要谨慎)
WeakSet WeakMap
1、弱引用,但WeakMap是对key的弱引用一旦没有东西引用key,就自动删除了,不会造成内存泄漏(明明这块内存没用了,但是垃圾处理机制发现你没有手动取消引用,就还有东西引用它,一直占着内存,页面会卡顿)
2、WeakSet-只能Object作为成员,WeakMap-只能Object为key
3、不可遍历(不知道啥时候就被垃圾回收了,就没了)
4、比如:私有属性-一旦实例没了它就没了,DOM节点-一旦删除了会自己被回收
5、不能遍历所以没有keys()、values(),entries()方法,size属性,clear方法

API

set
add(value):添加某个值,返回 Set 结构本身
delete(value):删除某个值,返回一个布尔值,表示删除是否成功
has(value):返回一个布尔值,表示该值是否为Set的成员
clear():清除所有成员,没有返回值
// 去除数组的重复成员 […new Set(array)]
set.size返回Set实例的成员总数
keys():返回键名的遍历器
values():返回键值的遍历器
entries():返回键值对的遍历器(键和值相等)
forEach():使用回调函数遍历每个成员

WeakSet
add(value):向 WeakSet 实例添加一个新成员。
delete(value):清除 WeakSet 实例的指定成员。
has(value):返回一个布尔值,表示某个值是否在 WeakSet 实例之中
没有办法遍历它的成员,所以没有size,foreach

Map
size属性返回 Map 结构的成员总数
set(key, value):set方法设置键名key对应的键值为value,然后返回整个 Map 结构。如果key已经有值,则键值会被更新,否则就新生成该键。因此可以采用链式写法
get(key):get方法读取key对应的键值,如果找不到key,返回undefined
has(key):has方法返回一个布尔值,表示某个键是否在当前 Map 对象之中
delete(key):delete方法删除某个键,返回true。如果删除失败,返回false
clear():clear方法清除所有成员,没有返回值
Map.prototype.keys():返回键名的遍历器。
Map.prototype.values():返回键值的遍历器。
Map.prototype.entries():返回所有成员的遍历器。
Map.prototype.forEach():遍历 Map 的所有成员

WeakMap
一是没有遍历操作(即没有keys()、values()和entries()方法),也没有size属性
二是无法清空,即不支持clear方法
WeakMap只有四个方法可用:get()、set()、has()、delete()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值