ES6中WeakMap和Map的区别

WeakMap和Map都是ES6中新增的数据结构,用于存储键值对。它们之间的主要区别有以下几点:

  • 键类型的限制:在Map中,键可以是任意类型的值(包括基本类型和对象引用),而在WeakMap中,键只能是对象引用。这是因为WeakMap的键是弱引用,不会阻止垃圾回收器回收键所引用的对象,而Map中的键是强引用,会阻止垃圾回收器回收键所引用的对象。
  • 可枚举性:Map支持对键和值进行迭代,可以使用size属性获取键值对的数量,也可以使用clear方法清空Map。WeakMap不支持对键和值进行迭代,也没有size属性和clear方法,无法获取WeakMap的所有键或值。
  • 方法的差异:Map和WeakMap都有get、set、has和delete四个方法,用于操作键值对。但是,Map还有一些其他的方法,例如keys、values、entries和forEach,用于遍历键值对。WeakMap没有这些方法。
相关推荐
excel13 分钟前
JS 正则在多次 test() 时为什么会出现 lastIndex 缓存问题?
前端
IT_陈寒15 分钟前
为什么 Java 的 Optional 让我调试到深夜?
前端·人工智能·后端
米丘1 小时前
React 19.x 的 lazy 与 Suspense
前端·javascript·react.js
如果超人不会飞1 小时前
TinyVue Grid 表格 fetchData 完全指南:从入门到精通
前端
kyriewen1 小时前
手写虚拟DOM后,我反问面试官:key为什么不能用index?
前端·react.js·面试
Doris_20231 小时前
说一说ESLint+Prettier生效的原理
前端·设计模式·架构
ZC跨境爬虫1 小时前
跟着 MDN 学CSS day_21:(图像溢出控制与表单元素样式定制)
前端·javascript·css·ui·交互
Access开发易登软件1 小时前
Access 和 SQLite,根本不在一个赛道上
java·jvm·数据库·sqlite·excel·vba·access开发
卷帘依旧2 小时前
微前端解决方案-qiankun
前端
moshuying2 小时前
你做的,比汇报出来的多得多
前端