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

JavaScript中判断值为null或true的最优雅实现方案是什么?

优化实现方案

你写的代码逻辑本质是德摩根定律的反向表述,直接转成正逻辑写法即可,可读性和性能都更好,根据你的需求可以选以下两种:

1. 严格匹配仅null/true(无隐式转换,最推荐)

如果要求仅当值严格等于null或者严格等于true时返回true,直接用严格相等做正向判断:

function isNullOrTrue(nullableBool){
  return nullableBool === null || nullableBool === true;
}

这种写法完全贴合你「判断值为null或者true」的需求描述,代码本身就是注释,没有理解成本,同时全用严格相等===避免了隐式类型转换的隐藏坑,运算步骤也比原写法少。

2. 和原写法逻辑完全等价(兼容undefined)

如果你的原逻辑中需要把undefined也判定为符合条件(原写法里!= null会同时匹配null和undefined),可以调整为:

function isNullOrTrue(nullableBool){
  return nullableBool == null || nullableBool === true;
}

这个写法和你给出的原代码逻辑100%一致,但不需要绕双重否定的弯,可读性提升非常明显。

如果习惯用ES2020+的新语法,还可以用空值合并运算符简化上述写法:

const isNullOrTrue = nullableBool => (nullableBool ?? true) === true;

内容的提问来源于stack exchange,提问作者Anamaria Miehs

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.08 00:54:03