## map,wekmap以及set ,wekset的区别

本文介绍了JavaScript中Map、WeakMap、Set和WeakSet的区别,包括它们的数据结构、特点以及在内存管理和垃圾回收机制中的不同。Map与对象相比有更广泛的键类型和性能优势,WeakMap的键是弱引用,可在对象被回收时自动移除,Set用于存储唯一值,而WeakSet则防止内存泄漏,适用于存储DOM节点和私有变量。
摘要由CSDN通过智能技术生成

map,wekmap以及set ,wekset的区别

首先我们来看一下整体的区别:

Map——本质上是键值对的集合,类似集合;可以遍历,方法很多,可以跟各
种数据格式转换。
WeakMap——只接受对象最为键名(null 除外),不接受其他类型的值作为键
名;键名是弱引用,键值可以是任意的,键名所指向的对象可以被垃圾回收,
此时键名是无效的,但是要注意,键值是被键名引用的,不可以被垃圾回收机制会回收的;不能遍历,方法有 get、set、has、delete。
Set——对象允许你存储任何类型的唯一值,无论是原始值或者是对象引用
WeakSet——成员都是对象;成员都是弱引用,可以被垃圾回收机制回收,可以用来保存 DOM 节点,不容易造成内存泄漏;

Map我们在使用的过程中,我们是经常会去拿map和object来比较,在一般情况下二者的使用是差不多的,但是也会存在以下的几点区别:

1 Object只能使用数值、字符串或符号作为键不同,Map可以使用任何JavaScript数据类型作为键。

 const m = new Map();const functionKey = function() {
   };const symbolKey = Symbol();const objectKey = 
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值