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没有这些方法。
相关推荐
攀小黑10 小时前
vue3+Web Speech API 封装了一个弹窗语音输入
前端·macos·xcode
roamingcode10 小时前
4.5 小时,从一句话需求到可安装的 Chrome 插件:一次 AI 结对开发的完整复盘
前端·人工智能·chrome·claude·codex
️学习的小王10 小时前
Windows Claude Code 接入 Playwright‑MCP,调用本机Edge浏览器(避坑完整教程)
前端·windows·edge
律宏阔10 小时前
CloakBrowser 开发踩坑笔记
前端·浏览器
ly768911 小时前
JVM 类加载机制:打破双亲委派模型的实践与陷阱
jvm·热部署·spi·类加载器·双亲委派
Made in Haven71211 小时前
HTML课程笔记补2
前端·笔记·html
Cry丶11 小时前
Vue 3 业务管理页面实战:组件拆分、父子通信与弹窗复用
前端·javascript·vue.js·父子通信·组件拆分·弹窗复用
雪芽蓝域zzs11 小时前
Vue前端配置路由通配捕获 404
前端·javascript·vue.js
计算机魔术师11 小时前
Anthropic 发布电商 Agent 架构与生产实践指南,并开源 commerce-agents 参考实现
前端
IMPYLH11 小时前
HTML 的 <ol> 元素
前端·html