WeakMap 是键必须为对象且弱引用的集合,不阻止垃圾回收,不可遍历、无 size 属性,适用于绑定元数据而不影响对象生命周期。

WeakMap 是 JavaScript 中一种特殊的键值对集合,它的核心特点是:键必须是对象,且对键的引用是“弱”的 —— 不会阻止垃圾回收器(GC)回收该对象。这使它和 Map 在行为、用途和限制上存在本质区别。
键只能是对象,原始值直接报错
WeakMap 不接受字符串、数字、布尔值等原始类型作为键,否则会抛出 TypeError:
const wm = new WeakMap();
wm.set("hello", "world"); // ❌ 报错:Invalid value used as weak map key
wm.set({}, "data"); // ✅ 合法,键是空对象
这是因为“弱引用”只在对象层面有意义;原始值没有内存地址和引用关系,无法被弱持有。
立即学习“Java免费学习笔记(深入)”;
键是弱引用,不阻碍垃圾回收
这是最根本的区别:
标签: javascript java 区别 键值对 垃圾回收器
还木有评论哦,快来抢沙发吧~