在 JavaScript 中检查变量是否为 NULL 或 Undefined
Check if Variable is Null or Undefined in JavaScript
使用逻辑 OR (||) 运算符检查变量是否为null
or
undefined
。
只有当变量是或
时,该if
块才会运行。null
undefined
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
。
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
。
const age = null; if (age !== undefined && age !== null) { console.log('✅ variable is NOT undefined and null'); }
我们使用了
逻辑与 (&&)
运算符,因此if
要运行该块,必须同时满足这两个条件。
我们在前面的示例中使用了
严格相等 ===
运算符,但是,有一种更简洁的方法来检查变量是否等于null
或undefined
使用
松散相等 ==。
使用松散等号检查变量是否为 NULL 或 Undefined
使用松散相等 (==) 运算符来检查变量是否为null
or
undefined
,例如if (age == null) {}
。
true
如果变量等于null
或
,比较将返回undefined
。
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
我们使用了松散相等 (==) 运算符,因此如果变量等于undefined
or则满足条件null
。
这是有效的,因为当您比较undefined
和null
使用松散相等 (==) 运算符时,它们是相等的。
console.log(null == undefined); // 👉️ true
如果您需要检查变量是否为 notnull
和 not undefined
,请使用松散不等式 (!=) 运算符。
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'); }
如果您需要检查变量是否专门存储 anull
或undefined
值,请使用else if
语句。
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
值。
如果不满足if
和else if
条件,则else
块运行。
如果不确定变量是否已声明,请使用typeof
运算符以避免出错。
typeof
使用运算符检查变量是否为 NULL 或 Undefined
使用typeof
运算符检查变量是否为null
或undefined
。
该typeof
运算符返回一个指示值类型的字符串,即使变量尚未声明也不会抛出错误。
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
运算符返回一个指示值类型的字符串。
console.log(typeof undefined); // 👉️ "undefined" console.log(typeof null); // 👉️ "object" console.log(typeof 'hello'); // 👉️ "string"
typeof
即使我们正在检查的变量尚未声明,运算符也不会抛出错误。
如果尚未声明变量,则其类型将设置为undefined
.
如果您不需要检查undefined
或null
专门检查,请将测试合并到一个语句中。
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
,则会出现错误。
// ⛔️ 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
运算符时,请注意它以字符串形式返回值的类型。
console.log(typeof undefined); // 👉️ "undefined" console.log(typeof null); // 👉️ "object" console.log(typeof 'hello'); // 👉️ "string"
另一件需要注意的事情是 的类型null
是"object"
,而不是,因此使用严格相等 (===) 运算符直接null
检查 for 。null
如果您需要检查变量是否未使用undefined
且未null
使用typeof
运算符,请使用以下if
语句。
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
块运行。