最可靠的方法是用===严格相等判断:value === null和value === undefined各自独立成立;undefined表示“没给值”,null表示“给了一个空值”;typeof null返回"object"是历史bug,不可信;number(null)为0,number(undefined)为nan;==会混淆二者,===才是唯一推荐方式。

直接用 === 判断最可靠: value === null 和 value === undefined 各自独立成立,互不干扰。这是区分二者的根本方法。
看来源和语义
undefined 是“没给值”——变量声明了但没赋值、函数没返回、对象没这个属性、参数没传,JavaScript 自动填的默认状态。
null 是“给了一个空值”——开发者主动写 = null,表示“这里本该有对象,但现在明确清空/未选中/暂无”。
用 typeof 辅助识别(注意陷阱)
typeof undefined 返回 "undefined",准确可信;
typeof null 返回 "object",这是历史 bug,不能靠它判断 null。
所以:检测 undefined 可用 typeof x === "undefined";
检测 null 必须用 x === null,别信 typeof。
在 Java 中初始化和管理阿里云 SDK客户端。包括单例模式、线程安全、endpoint 与 region 配置、VPC 终端节点、同步与异步等。
数值转换行为不同
两者在条件判断里都转为 false,但转成数字时表现分明:
– Number(null) 得 0;
– Number(undefined) 得 NaN;
– null + 1 是 1,undefined + 1 是 NaN。
这个差异可用于调试或容错处理,但不建议作为主判断逻辑。
严格相等(===)是唯一推荐方式
== 会把 null 和 undefined 当作相等(null == undefined 为 true),容易掩盖问题;
=== 先比类型再比值,null === undefined 恒为 false,结果清晰无歧义。
实际开发中,该判 null 就写 === null,该判 undefined 就写 === undefined,不绕弯。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










