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

标签 javascript jquery

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?

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

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

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

最佳答案

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

if (variable != null)

一个=,而不是两个。

JavaScript 规范中的“抽象相等比较算法”中有两个特殊子句专门用于处理一个操作数为 null 且另一个操作数为 undefined 的情况,以及对于 ==,结果为 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;

关于javascript - 如何在 JavaScript 中检查变量是否为 null 和/或未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12271750/

相关文章:

javascript - 如何将此 js.erb 更改为 haml

javascript - 为什么我的 javascript else 语句停止工作

javascript - jQuery - 链接多个 .next() 方法的替代方法

javascript - 如何在滚动时只运行一次 jQuery 动画?

javascript - 如何在angularjs中使用json对象生成复选框

javascript - 无法将 'this' 值从一个 javascript 函数传递到另一个函数?

javascript - 使用 fetch 解构嵌套的 json 对象的正确方法是什么?

javascript - React - 状态属性未定义 - 为什么?

javascript - 来自 HTML 输入字段的文本通过 jquery 函数运行?

jquery - 将所有子 div 的高度调整为 100% 父高度