关于jquery:如何检查javascript中的变量是否同时为空和/或未定义

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

本问题已经有最佳答案,请猛点这里访问。

Possible Duplicate:
Detecting an undefined object property in JavaScript
How to determine if variable is 'undefined' or 'null'
Is there a standard function to check for null, undefined, or blank variables in JavaScript?

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

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

但不是分两步完成,即检查它是否未定义,是否为空。是否有一步检查可代替此检查?


变量不能同时为nullundefined。但是,您问题的直接答案是:

1
if (variable != null)

一个=,而不是两个。

javascript规范中的"抽象相等比较算法"中有两个特殊的子句,一个是null,另一个是undefined,结果是==true!=false。因此,如果变量的值是undefined,则不是!= null,如果不为空,则显然不是!= null

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

1
2
3
4
5
6
var isDefined = false;
try {
  (variable);
  isDefined = true;
}
catch (x) {}

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

1
var isJqueryAvailable = window.jQuery != null;

1
var isJqueryAvailable ="jQuery" in window;


您可以用自己的函数包装它:

1
2
3
4
function isNullAndUndef(variable) {

    return (variable !== null && variable !== undefined);
}