在 JavaScript 中检查 Variable 是否为 NULL 或 Undefined

在 JavaScript 中检查变量是否为 NULL 或 Undefined

Check if Variable is Null or Undefined in JavaScript

使用逻辑 OR (||) 运算符检查变量是否为nullor
undefined

只有当变量是或
时,
if块才会运行nullundefined

索引.js
const age = null; // ✅ Check if the variable is undefined or NULL if (age === undefined || age === null) { // 👇️ this runs console.log('✅ variable is undefined or null'); } else { console.log('⛔️ variable is NOT undefined or null'); } // ✅ Check if the variable is NOT undefined and NULL if (age !== undefined && age !== null) { console.log('✅ variable is NOT undefined and null'); }

第一个if语句检查age变量是否是undefined
null

索引.js
const age = null; if (age === undefined || age === null) { // 👇️ this runs console.log('✅ variable is undefined or null'); } else { console.log('⛔️ variable is NOT undefined or null'); }

如果满足任一条件,则if块运行,否则,else
块运行。

第二条if语句检查变量是否不等于null和不等于undefined

索引.js
const age = null; if (age !== undefined && age !== null) { console.log('✅ variable is NOT undefined and null'); }

我们使用了
逻辑与 (&&)
运算符,因此
if要运行该块,必须同时满足这两个条件。

我们在前面的示例中使用了
严格相等 ===
运算符,但是,有一种更简洁的方法来检查变量是否等于
nullundefined使用
松散相等 ==

使用松散等号检查变量是否为 NULL 或 Undefined

使用松散相等 (==) 运算符来检查变量是否为nullor
undefined,例如if (age == null) {}

true如果变量等于null
,比较将返回
undefined

索引.js
const age = undefined; // ✅ Check if a variable is equal to null or undefined if (age == null) { // 👇️ this runs console.log('The variable is undefined or null'); } // ✅ Check if a variable is not equal to null and undefined if (age != null) { console.log('The variable is NOT null and NOT undefined'); }

age
我们使用了松散相等 (==) 运算符,因此如果变量等于
undefinedor则满足条件null

这是有效的,因为当您比较undefinednull使用松散相等 (==) 运算符时,它们是相等的。

索引.js
console.log(null == undefined); // 👉️ true

如果您需要检查变量是否为 notnull和 not undefined,请使用松散不等式 (!=) 运算符。

索引.js
const age = undefined; if (age != null) { console.log('The variable is NOT null and NOT undefined'); } else { // 👇️ this runs console.log('The variable is equal to null or undefined'); }
使用松散相等 (==) 和松散不等 (!=) 运算符比使用严格相等运算符更隐含一些,并且可能会让阅读您的代码的某些开发人员感到困惑。

如果您需要检查变量是否专门存储 anullundefined值,请使用else if语句。

索引.js
const age = undefined; if (age === null) { console.log('The variable stores a NULL value'); } else if (age === undefined) { // 👇️ this runs console.log('The variable stores an UNDEFINED value'); } else { console.log('Neither NULL nor UNDEFINED', age); }

if语句检查变量是否存储了一个null值。

如果满足条件,则if运行块,否则else if运行检查。

else if语句检查变量是否存储了一个undefined值。

如果不满足ifelse if条件,则else块运行。

如果不确定变量是否已声明,请使用typeof
运算符以避免出错。

typeof使用运算符检查变量是否为 NULL 或 Undefined

使用typeof运算符检查变量是否为nullundefined

typeof运算符返回一个指示值类型的字符串,即使变量尚未声明也不会抛出错误。

索引.js
if (typeof age === 'undefined') { // 👇️ this runs console.log('The variable is undefined'); } else if (age === null) { console.log('The variable is null'); } else { console.log('The variable is neither NULL nor undefined'); }

请注意,我们没有age在上面的代码示例中声明变量。

typeof
运算符返回一个指示值类型的字符串

索引.js
console.log(typeof undefined); // 👉️ "undefined" console.log(typeof null); // 👉️ "object" console.log(typeof 'hello'); // 👉️ "string"

typeof即使我们正在检查的变量尚未声明,运算符也不会抛出错误

如果尚未声明变量,则其类型将设置为undefined.

这有助于我们避免在检查特定范围内不存在的变量类型时出错。

如果您不需要检查undefinednull专门检查,请将测试合并到一个语句中。

索引.js
if (typeof age === 'undefined' || age === null) { // 👇️ this runs console.log('The variable is undefined or null'); } else { console.log('The variable is NOT undefined and null'); }

我们使用了逻辑或 (||) 运算符,因此if如果至少满足一个条件,该块就会运行。

我们首先检查age变量的类型undefined是否是,然后检查它是否是null

如果满足任一条件,则if块运行,否则,else块运行。

如果我们在不使用运算符的情况下检查未声明的变量typeof,则会出现错误。

索引.js
// ⛔️ ReferenceError: age is not defined if (age === undefined || age === null) { console.log('The variable is undefined or null'); } else { console.log('The variable is NOT undefined and null'); }

使用typeof运算符时,请注意它以字符串形式返回值的类型。

索引.js
console.log(typeof undefined); // 👉️ "undefined" console.log(typeof null); // 👉️ "object" console.log(typeof 'hello'); // 👉️ "string"

另一件需要注意的事情是 的类型null"object",而不是,因此使用严格相等 (===) 运算符直接null检查 for 。null

如果您需要检查变量是否未使用undefined且未null使用typeof运算符,请使用以下if语句。

索引.js
if (typeof age !== 'undefined' && age !== null) { console.log('The variable is NOT undefined and null'); } else { // 👇️ this runs console.log('The variable is undefined or null'); }

我们首先检查变量是否没有"undefined"使用
typeof运算符的类型。

即使尚未声明变量,该语句也不会导致错误。

我们使用了逻辑与 (&&) 运算符,因此if要运行该块,必须同时满足这两个条件。

第二个条件检查变量不存储null值。

如果两个条件都满足,则if块运行,否则,else块运行。