如何在JavaScript的if语句中检查nullish值,无需显式判断null和undefined?
检查JavaScript中的Nullish值(null/undefined)的简洁写法
当然可以,有几种精准且简洁的方式,能只判断变量是否为null或undefined,不会误判0、空字符串、空数组这类假值:
1. 使用== null判断
这是最常用的简洁写法,JavaScript中null == undefined会返回true,但它不会匹配其他假值。示例代码:
if (key == null) { // 仅当key是null或undefined时执行此处逻辑 }
原理:==的类型转换规则里,null和undefined是仅有的互相相等、且不与其他任何值相等的两个值,因此这个判断刚好精准命中目标场景。
2. 使用typeof判断(适配变量未声明场景)
如果变量可能未被声明(直接访问会抛出引用错误),可以用typeof做前置检查:
if (typeof key === 'undefined' || key === null) { // 执行逻辑 }
这种写法比== null繁琐,一般只在变量可能未定义的场景下使用,比如全局变量的存在性检查。
3. 空值合并运算符??(ES2020+,适配赋值场景)
如果是要给变量赋默认值的场景,??运算符会更贴合需求——它仅在左侧为null或undefined时,才返回右侧的默认值:
const targetValue = key ?? '默认内容'; // 等价于:const targetValue = (key === null || key === undefined) ? '默认内容' : key;
注意:不要用
== undefined,虽然效果和== null一致,但== null在社区中更常用、更直观。
内容的提问来源于stack exchange,提问作者user2138149
相关产品推荐
相关产品推荐

