map 的 size 是只读 getter 属性,实时返回键值对数量,增删操作后立即更新,不可赋值或调用,类型为 number。

Map 的 size 属性会自动反映当前键值对数量,无需手动计算,每次增删后立即更新。
size 是只读属性,直接访问即可
Map 实例的 size 是一个 getter 属性,返回当前 Map 中键值对的个数。它不是方法,不能加括号调用,也不需要手动维护。
- 添加新键值对(
set())后,size自动 +1 - 覆盖已有键(
set(key, newValue))时,size不变 - 删除键(
delete(key))或清空(clear())后,size立即减少或归零 - 即使键是对象、函数或 Symbol,只要不重复,每个都计入
size
实时性验证:增删操作后 size 立刻变化
你可以随时读取 size,结果总是最新状态:
const map = new Map();
console.log(map.size); // 0
map.set('a', 1);
console.log(map.size); // 1
map.set('b', 2);
console.log(map.size); // 2
map.set('a', 99); // 覆盖已存在键
console.log(map.size); // 2(未增加)
map.delete('b');
console.log(map.size); // 1
map.clear();
console.log(map.size); // 0
注意:size 不受迭代器或遍历影响
调用 keys()、values()、entries() 或使用 for...of 遍历,都不会改变 size。它只响应结构变更(set、delete、clear)。
- 遍历中修改 Map(如边遍历边
set)会导致size动态变化,但需注意可能引发不可预期行为(如无限循环),建议避免 -
size始终是整数,类型为number,可直接用于条件判断或循环控制
常见误用提醒
不要尝试给 size 赋值或把它当函数调用:
-
map.size = 5—— 无效,赋值被忽略(严格模式下静默失败) -
map.size()—— 报错:TypeError: map.size is not a function -
Object.keys(map).length—— 错误,Map 不是普通对象,Object.keys返回空数组
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











