如何在JavaScript中检查变量是否为null和/或未定义

How to check if a variable is both null and /or undefined in JavaScript

本文关键字:null 未定义 是否 变量 JavaScript 检查      更新时间:2023-09-26

可能重复:
在JavaScript中检测未定义的对象属性
如何确定变量是否为';未定义';或者';null'
是否有标准函数来检查JavaScript中的null、未定义或空白变量?

在我的代码中,我有一个看起来像的条件

if (variable !== null && variable !== undefined) {
}

但不是分两步进行,即检查它是否未定义和是否为空。是否有一步检查可以取代此检查。

变量不能同时为nullundefined。然而,你的问题的直接答案是:
if (variable != null)

一个=,而不是两个。

在";抽象等式比较算法";在专用于一个操作数是null而另一个是undefined的情况的JavaScript规范中,并且结果是==true!=false。因此,如果变量的值是undefined,那么它就不是!= null,如果它不为null,那么它显然不是!= null

现在,标识符根本没有被定义为varlet、函数参数或全局上下文的属性的情况是不同的。对此类标识符的引用在运行时被视为错误。您可以尝试引用并捕获错误:

var isDefined = false;
try {
  (variable);
  isDefined = true;
}
catch (x) {}

然而,我个人认为这是一种有问题的做法。对于基于是否存在其他库或类似情况而可能存在或不存在的全局符号,您可以测试window属性(在浏览器JavaScript中):

var isJqueryAvailable = window.jQuery != null;

var isJqueryAvailable = "jQuery" in window;

您可以将其封装在自己的函数中:

function isNullAndUndef(variable) {
    return (variable !== null && variable !== undefined);
}