Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/406.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在JavaScript中检查变量是否为null和/或未定义_Javascript_Jquery - Fatal编程技术网

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

如何在JavaScript中检查变量是否为null和/或未定义,javascript,jquery,Javascript,Jquery,可能重复: 在我的代码中,我有一个条件 if (variable !== null && variable !== undefined) { } 但不是分两步进行,即检查它是否未定义和是否为null。是否有一个单步检查来代替此检查。变量不能同时为null和未定义。然而,你的问题的直接答案是: if (variable != null) 一个=,而不是两个 JavaScript规范中的“抽象等式比较算法”中有两个特殊子句专门用于一个操作数为null和另一个操作数为unde

可能重复:


在我的代码中,我有一个条件

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

但不是分两步进行,即检查它是否未定义和是否为null。是否有一个单步检查来代替此检查。

变量不能同时为
null
未定义
。然而,你的问题的直接答案是:

if (variable != null)
一个
=
,而不是两个

JavaScript规范中的“抽象等式比较算法”中有两个特殊子句专门用于一个操作数为
null
和另一个操作数为
undefined
,结果是
===
true
false
=。因此,如果变量的值是
未定义的
,则它不是
!=null
,如果它不是null,那么它显然不是
!=空

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

var isDefined = false;
try {
  (variable);
  isDefined = true;
}
catch (x) {}
我个人认为这是一个值得怀疑的做法。对于基于其他库的存在或不存在或类似情况而存在的全局符号,可以测试
窗口
属性(在浏览器JavaScript中):


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

function isNullAndUndef(variable) {

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

如果这正是您所担心的,那么它并不会降低您的代码速度。使用函数:
函数isNullOrUndefined(variable){return variable==null | | variable==undefined;}
@VisioN如果您将未定义的变量作为参数传递给函数,您将得到一个错误。@dqhendricks这不是真的,我不认为,当然,这可能会导致函数内部出现错误。@您当然可以编写函数,但是
=操作员已经处理了这个案例。虽然这是正确的,并且回答了OP的问题,但我认为原始代码更清晰。不是每个人都会意识到
x!=空
并说
!x
@RobG好吧,我通常不会让“每个人”都能访问我的源代码库:-)我认为JavaScript程序员了解这样的事情很重要,换句话说,答案很好,应该被认为是最好的。这对未定义的人不起作用variable@ParthChavda正如在对原始问题的评论中所指出的,测试一个根本不存在的变量并不是本代码的意图。这种情况——使用未定义的变量——只是一个错误,并且在“严格”模式下被标记为错误。或者至少
return(variable!==null&&variable!==undefined)快点!这就像说
if(true){return true;}return false
var isJqueryAvailable = "jQuery" in window;
function isNullAndUndef(variable) {

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