Map.prototype.get 是 JavaScript 中根据键严格相等(===)匹配从 Map 获取值的方法,支持任意类型键,键不存在时返回 undefined,必须用 get() 调用而非点号或方括号访问。

Map.prototype.get 是 JavaScript 中用于从 Map 对象中根据键(key)获取对应值(value)的标准方法。它不会修改原 Map,只做查找;如果键不存在,返回 undefined。
基本用法:传入键,返回值
调用方式很简单:map.get(key)。注意:Map 的键是严格相等(===)匹配的,支持任意类型(包括对象、函数、Symbol 等),不局限于字符串。
- 字符串键:
map.get('name')→ 返回该字符串键对应的值 - 数字键:
map.get(42)→ 匹配数字42,不是字符串'42' - 对象键:
map.get(obj)→ 必须是同一个引用的对象才匹配
处理“键不存在”的情况
get() 找不到键时返回 undefined,不是报错。因此建议配合逻辑判断或提供默认值:
- 用逻辑运算符提供默认值:
map.get('age') ?? 0 - 用条件判断:
if (map.has('email')) { console.log(map.get('email')); } - 避免误判
false、0、''等假值 —— 它们是合法值,不能仅靠if (map.get(k))判断是否存在
和 Object 的区别:别用点号或方括号语法
Map 不是普通对象,不能用 map.key 或 map['key'] 访问。以下写法会出错或返回 undefined:
-
map.name→undefined(属性访问,不是 Map 查找) -
map['name']→undefined(同上,除非你手动在 map 对象上设了该属性) - 必须用
map.get('name')
常见误区提醒
Map 的键区分类型和引用:
-
map.set('1', 'a'); map.get(1)→undefined(字符串'1'≠ 数字1) -
const a = {}; const b = {}; map.set(a, 'x'); map.get(b)→undefined(不同对象引用) -
map.set(NaN, 'nan'); map.get(NaN)→ 正确返回'nan'(Map 中 NaN 被视为相等,这是特例)
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











