Map.prototype.size 是只读属性,直接返回 Map 中键值对数量:空 Map 为 0,set() 更新键不增加 size,delete() 和 clear() 分别减 1 或重置为 0,支持 Symbol 键,且比 Object.keys().length 更准确。

Map.prototype.size 是一个只读属性,直接返回 Map 实例中当前存储的键值对数量,无需调用方法,也不受内部数据结构影响。
基本用法:直接访问 size 属性
创建 Map 后,随时可通过 .size 获取键值对个数:
- 空 Map 的
size为0 - 每成功调用
set()添加一个新键(或更新已有键),size自动加 1 - 调用
delete()移除键后,size自动减 1 -
clear()会将size重置为0
注意 key 的唯一性决定 size 变化
Map 中键是按引用或值严格相等判断的。重复设置相同键不会增加 size:
Java项目代码review工具。分析Git变更+完整调用链路上下文,推断业务需求,进行多维度评分和分类汇总,生成完整PRD文档。包含细粒度Java代码审查清单(Null安全、异常处理、Streams、并发、equals/hashCode、资源管理、API设计、性能、MyBatis/ORM、事务边界、SQL/DD...
const map = new Map();
map.set('a', 1);
map.set('b', 2);
console.log(map.size); // 2
map.set('a', 99); // 更新已有键
console.log(map.size); // 还是 2,不是 3
与 Object 对比:size 更可靠
Object 没有原生计数属性,需手动统计或使用 Object.keys(obj).length,但会漏掉不可枚举属性和 Symbol 键;而 Map 的 size 始终精确反映实际键值对数量,包括 Symbol 类型的键:
立即学习“Java免费学习笔记(深入)”;
const map = new Map();
map.set(Symbol('x'), 'value');
console.log(map.size); // 1
const obj = {};
obj[Symbol('x')] = 'value';
console.log(Object.keys(obj).length); // 0 —— Symbol 键不计入
常见误用提醒
-
size不是函数,不能写成map.size()(会报错) - 它不响应式——不会自动触发监听或更新视图,如在 Vue/React 中需手动触发更新
- 遍历过程中增删键会影响后续的
size值,需注意逻辑顺序

















