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

时间:2012-09-04 21:42:49

标签: javascript jquery

  

可能重复:
  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?

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

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

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

2 个答案:

答案 0 :(得分:48)

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

if (variable != null)

一个=,而不是两个。

JavaScript规范中的“抽象相等比较算法”中有两个特殊条款,专门用于一个操作数为null,另一个为undefined的情况,结果为{{1 } true== false。因此,如果变量的值为!=,则它不是undefined,如果它不为空,则显然不是!= null

现在,标识符根本没有被定义,作为!= nullvar,作为函数参数,或作为全局属性背景不同。对此类标识符的引用在运行时被视为错误。您可以尝试引用并捕获错误:

let

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

window

var isJqueryAvailable = window.jQuery != null;

答案 1 :(得分:6)

你可以将它包装在你自己的函数中:

function isNullAndUndef(variable) {

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