最稳妥方式是用 typeof 判断:typeof variable === 'undefined',可安全检测未声明或已声明未赋值的变量;已声明时可用 variable === undefined;避免使用 ==、!variable 或 === null 等错误方式。

验证变量是否为 Undefined 类型,核心是区分“未声明”和“已声明但未赋值”两种情况,同时避免运行时错误。最稳妥、最常用的方式是使用 typeof 操作符。
用 typeof 判断 undefined(推荐)
这是唯一能安全检测**未声明变量**的方法,不会抛出 ReferenceError:
-
typeof variable === 'undefined'—— 返回true表示变量是 undefined 类型(无论是否声明) - 适用于所有场景:未声明变量、已声明未赋值、函数参数缺省、对象不存在的属性等
- 注意:返回的是字符串
'undefined',不是值undefined
用严格相等(===)判断 undefined
适合已确认变量**已声明**的上下文,写法直接但有风险:
-
variable === undefined—— 只在变量已声明时安全;若变量根本没声明,会报错 - 不推荐用于可能未声明的全局变量或动态属性访问(如
obj.prop) - 优点是语义清晰,性能与
typeof相当
用 void 0 替代 undefined 字面量
属于进阶技巧,主要用于防止 undefined 被意外重写(极少见,但旧版浏览器或非严格模式下理论上可能):
-
variable === void 0——void 0总是返回原始undefined值 - 现代代码中基本不需要,
typeof更通用,=== undefined在严格模式下也足够安全
不推荐的方式
以下方法存在明显缺陷,应避免:
-
variable == undefined—— 使用宽松相等,会把null也判为 true,失去类型精度 -
!variable或if (!variable)—— 会把0、''、false等 falsy 值一并误判 -
variable === null—— 完全错误,null和undefined是不同类型的两个独立值
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











