判断一个值是否为 null,最直接、最安全的方式是使用 value === null;它能准确识别 null,而 == null 会同时匹配 null 和 undefined,!value 会误判其他 falsy 值。

判断一个值是否为 null,最直接、最安全的方式是使用严格相等(===)与 null 比较。
用 === null 明确判断
因为 null 是原始类型(尽管 typeof null 返回 "object" 是历史遗留 bug),它只有一个值,且不等于任何其他值(包括 undefined)。所以:
-
value === null是唯一能准确识别null的方式 - 避免使用
== null,因为它会同时匹配null和undefined - 不要依赖
!value或if (!value),这会把0、""、false等 falsy 值也误判为null
区分 null 和 undefined
虽然两者都表示“无值”,但语义不同:undefined 表示未赋值或不存在的属性,null 是显式赋的“空对象引用”。实际开发中常需分别处理:
-
value === null→ 确认是null -
value === undefined→ 确认是undefined -
value == null→ 同时涵盖两者(等价于value === null || value === undefined),适合宽松校验场景,但不是“判断是否为null”的正确写法
避免常见误写
以下写法都不推荐用于判断 null:
立即学习“Java免费学习笔记(深入)”;
-
typeof value === 'null'→ 语法错误,typeof对null返回'object' -
Object.is(value, null)→ 虽然语义正确且可读性好,但略重,日常判断无需替代=== -
value?.prop或可选链 → 仅用于安全取值,不能用于类型判断
核心就一条:要确认是不是 null,只用 value === null。










