Map.prototype.clear() 用于清空 Map 实例所有键值对,直接修改原对象、size 变为 0、不返回新 Map;它高效稳定,不同于 Object 需遍历或重新赋值,但 WeakMap 不支持该方法。

Map.prototype.clear() 是 JavaScript 中用于清空 Map 实例中所有键值对的内置方法,调用后该 Map 变为空映射,长度变为 0。
基本用法很简单
只需在 Map 实例上调用 clear() 方法,无需传参:
- 它不返回新 Map,而是直接修改原 Map 对象
- 执行后 map.size 立即变为 0
- 原 Map 的引用保持不变,只是内部数据被清空
实际使用示例
比如你有一个存储用户偏好的 Map:
console.log(userPrefs.size); // 2
userPrefs.clear();
console.log(userPrefs.size); // 0
console.log(userPrefs.has('theme')); // false
和 Object 清空方式的区别
不同于普通对象需要遍历或重新赋值(obj = {}),Map 的 clear() 是专为清空设计的高效操作:
立即学习“Java免费学习笔记(深入)”;
- 不涉及属性枚举或删除操作,性能更稳定
- 不会影响 Map 实例的其他属性(如原型链、迭代器状态等)
- 适合在频繁重用同一 Map 实例时调用,避免反复创建新对象
注意点
这个方法本身没有副作用,但要注意:
- 如果其他变量也引用了同一个 Map 实例,它们会同步看到清空后的状态
- 它不会触发任何自定义的 setter 或 Proxy 拦截(除非你在 Proxy 中显式拦截了 clear)
- 不能用于 WeakMap —— WeakMap 没有 clear 方法


















