长风破浪会有时
直挂云帆济沧海

js中Set、Map、WeakSet 和 WeakMap 的区别?

Set

成员唯一、无序且不重复;

[value, value],键值与键名是一致的(或者说只有键值,没有键名);

可以遍历,方法有:add、delete、has。

WeakSet

成员都是对象;

成员都是弱引用,可以被垃圾回收机制回收,可以用来保存 DOM 节点,不容易造成内存泄漏;

不能遍历,方法有 add、delete、has。

Map

本质上是键值对的集合,类似集合;

可以遍历,方法很多,可以跟各种数据格式转换。

WeakMap

只接受对象最为键名(null 除外),不接受其他类型的值作为键名;

键名是弱引用,键值可以是任意的,键名所指向的对象可以被垃圾回收,此时键名是无效的;

不能遍历,方法有 get、set、has、delete。

赞(1)
未经允许不得转载:阿锋哥前端开发经验分享 » js中Set、Map、WeakSet 和 WeakMap 的区别?
分享到: 更多 (0)

几百块就能做营销型企业网站?

查看详情