Set、Map、WeakSet 和 WeakMap 的区别?

本文介绍了JavaScript中的四个数据结构——Map、Set、WeakMap和WeakSet,强调了它们各自的特点和用途。Map用于存储键值对,具有快速查找特性;Set则是一个不允许重复key的集合;WeakMap的键为弱引用对象,不被常规遍历;WeakSet同样是对象的弱引用集合,同样不可遍历。这些数据结构提供了不同场景下的高效数据管理方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Map:

  • Map 是一组键值对的结构,具有极快的查找速度。
  • 初始化 Map 需要一个二维数组,或者直接初始化一个空 Map。var m = new Map([['Michael', 95], ['Bob', 75], ['Tracy', 85]]);
  • 一个 key 只能对应一个 value,所以,多次对一个 key 放入 value,后面的值会把前面的值冲掉
  • Map 方法:set、get、delete、has、keys、values 等
  • 可遍历(iterable 类型) for...of / forEach (forEach 是 iterable 内置的方法)

Set:

  • 是一组 key 的集合,不存储 value,key 不能重复
  • 创建一个 Set,需要提供一个 Array 作为输入,或者直接创建一个空 Set js var s1 = new Set(); var s2 = new Set([1, 2, 3]);
  • 方法: add、delete、has、size、clear
  • 可遍历(iterable 类型) for...of / forEach (forEach 是 iterable 内置的方法)

WeakMap:

  • WeakMap 对象是一组键/值对的集合,其中的键是弱引用的。其键必须是对象,而值可以是任意的;
  • 不可遍历

WeakSet:

  • 成员都是对象(引用);
  • 成员都是弱引用,随时可以消失
  • 不能遍历
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

紫微前端

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值