You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在JavaScript中如何判断对象属性为null或undefined(非0或空字符串)

准确判断对象属性是否为null或undefined

我之前踩过一个坑:想用if (!obj.x)来判断对象属性obj.x是否为null或undefined,但很快发现当obj.x是0或者空字符串""这类“假值”的时候,这个条件也会返回true,完全不符合我要的逻辑——我只希望当obj.x严格是null或者undefined时条件才成立。

针对这个需求,我梳理了两个可行方案:

  • 方案1:严格相等判断
    直接写明确的判断逻辑:

    if (obj.x === null || obj.x === undefined)
    

    这个写法逻辑清晰,完全符合需求,但代码稍微冗长一点。

  • 方案2:使用== null简化判断
    后来我想到能不能用更简洁的写法:if (obj.x == null)?
    查了相关讨论后确认,这个写法和方案1是完全等价的!因为==运算符的规则里,null和undefined是互相相等的,而且不会和其他值(比如0、"")相等,刚好满足我的需求,而且代码更简洁清晰,我个人非常认同这种写法。


补充说明

有朋友提到过类似的变量判断问题,但我这里讨论的是对象的属性而非独立变量:

  • 访问对象不存在的属性只会返回undefined,不会触发运行时错误,所以不需要额外用typeof运算符做前置判断;
  • 虽然之前这个问题因为类似问题被关闭,但我认为二者有细微差异:变量如果未声明直接访问会报错,但对象属性不会,所以判断逻辑可以更简化。

内容的提问来源于stack exchange,提问作者Ferran Maylinch

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 08:55:12