【我不熟悉的javascript】map和weakmap的区别

map 保存键值对,并且能够记住键的原始插入顺序,任何值(对象或者基本类型)都可以作为一个键或一个值

  1. 基本方法有 get, set, has, delete, clear
  2. 长度 .size
  3. 迭代 keys, values, extries, forEach
  4. 可以使用for ...of 迭代
  5. 任何值(对象或者基本类型)都可以作为一个键或一个值
  6. 健是强引用,即使健没有其他引用,它们仍会被Map对象所持有,不会被垃圾回收
  7. 键值对且需要迭代遍历或者确定大小的情况

weakmap满足map的一切条件,但是

  1. 基本方法有get, has, set, delete
  2. 没有clear方法
  3. 不能通过size获取长度
  4. 不可以使用for...of迭代
    1. 因为是弱引用
  5. 键 只能是对象,值可以是任意类
  6. 健 是弱引用,如果没有其他引用,则会被垃圾回收,这意味着 WeakMap中使用的对象作为键时,不会阻止这些对象被垃圾回收,因此通常用于不影响垃圾回收的情况下关联数据
  7. 相比map, weakmap有利于垃圾回收,参考
  8. 适用于需要弱引用键、不影响垃圾回收的情况下关联数据的场景。

更多内容,请参考官方文档

https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Mapicon-default.png?t=N7T8https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Map

https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/WeakMapicon-default.png?t=N7T8https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/WeakMap

其实在实际开发过程中,一般的需求我们用object就能满足,map用的比较少!

还有 map 和 object 的区别对比

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值