可能是重复问题:
如何在JavaScript中检测未定义的对象属性
如何确定变量是否为'undefined'或'null'
JavaScript中是否有用于检查空、未定义或空白变量的标准函数?
在我的代码中,我有一个条件看起来像这样:
if (variable !== null && variable !== undefined) {
}
不过,是否有一种一步检查可以替换这个检查,而不是分两步进行,即检查它是否未定义和非空。
可能是重复问题:
如何在JavaScript中检测未定义的对象属性
如何确定变量是否为'undefined'或'null'
JavaScript中是否有用于检查空、未定义或空白变量的标准函数?
在我的代码中,我有一个条件看起来像这样:
if (variable !== null && variable !== undefined) {
}
不过,是否有一种一步检查可以替换这个检查,而不是分两步进行,即检查它是否未定义和非空。
null
和undefined
。然而,对于你的问题直接的答案是:if (variable != null)
一个 =
,而非两个。
在 JavaScript 规范的“抽象相等比较算法”中,有两个特殊条款专门针对一个操作数为null
且另一个操作数为undefined
的情况,结果为==
时为true
,而!=
则为false
。因此,如果变量的值是undefined
,它就不是!= null
,如果它不是null,显然也不是!= null
。
现在,标识符完全未定义的情况(既不是var
或let
,也不是函数参数或全局上下文的属性)是不同的。在运行时,对这种标识符的引用被视为错误。你可以尝试引用并捕获错误:
var isDefined = false;
try {
(variable);
isDefined = true;
}
catch (x) {}
我个人认为这是一个值得怀疑的做法。对于可能存在或不存在的全局符号,基于某些其他库的存在或缺失,或者类似情况,您可以测试浏览器JavaScript中的window
属性:
var isJqueryAvailable = window.jQuery != null;
或者
var isJqueryAvailable = "jQuery" in window;
function isNullAndUndef(variable) {
return (variable !== null && variable !== undefined);
}
return (variable !== null && variable !== undefined);
这样说吧!这就像是说if(true) { return true; } return false;
。 - jeremy
typeof
),包括在OP中。 - RobGif (!!!variable) { //做某事 }
- msroot0
,NaN
, 空字符串或false
,那么该测试也将成功。 - Pointy