如何检查 JavaScript 中的变量是否为空、未定义或空白?

front end technologyjavascriptweb development

在本教程中,我们将学习如何检查 JavaScript 中的变量是否为空、未定义或空白。没有特定的内置库函数来检查变量是否为undefinednull。不过,我们可以使用一些运算符(例如typeof运算符和equality运算符)来检查变量。

在继续本教程之前,让我们先澄清一下 null、undefined 或空白变量之间的疑问。

Null VS Undefined

我们可以说 Null 和 undefined 变量几乎相同,但不完全相同。

  • 未定义变量 - 它是程序中未声明的变量,编译器对该变量一无所知。

  • Null 变量 - 它是声明的变量,但我们尚未为其分配任何值。

Null 变量是一个对象,当我们不为 Null 变量分配任何值时,它会自动分配 'undefined' 值。此外,我们可以故意将 null 值分配给变量以使其保持为空,也称为 null 变量。下面,用户可以看到 null 和 undefined 的值相同,但数据类型不同。

let result = null == undefined // 返回 true
let result = null === undefined // 返回 false

blank 变量与不包含任何值的 Null 变量相同。

使用严格相等运算符 (===) 检查 null 变量

在此方法中,我们将使用严格相等运算符来检查变量是否为 null、空或未定义。如果我们在声明时没有为变量赋值,JavaScript 编译器会将其赋值为"未定义"值。因此,我们可以检查变量是否包含空值或未定义值,这意味着我们有一个空变量。

语法

if (variable == null || variable === 'undefined') {

    // 变量未定义或为空
}

示例

在下面的示例中,我们声明了两个变量。在第一个变量中,我们分配了空值,而在另一个变量中,我们尚未分配值。我们使用上述方法检查它是否为空,用户可以在输出中看到结果。

<html> <body> <h2>Check for variable is undefined or null using <i>strict equality operator</i></h2> <h4>output for let var1 = null;</h4> <div id = "output1"></div> <h4>output for let var1;</h4> <div id = "output2"> </div> <script> let output1 = document.getElementById("output1"); let output2 = document.getElementById("output2"); function checkVar( variable ) { if (variable == null || variable === 'undefined') { return " varaible is undefined or null; " } else { return " variable is properly defined and its value is " + variable; } } let var1 = null; let var2; output1.innerHTML = checkVar(var1); output2.innerHTML = checkVar(var2); </script> </body> </html>

使用 typeof 运算符

变量未定义时,表示变量未声明。用户不能像上述方法一样在"if-else"条件语句中使用它。要检查未声明变量的类型,我们可以使用 typeof 运算符。typeof 运算符将变量作为操作数并返回变量类型。作为 typeof 的操作数,我们也可以使用未声明的变量。

语法

let type = typeof ( variable ) // 对未声明的变量返回"undefined"。

示例

在下面的示例中,我们创建了一个变量并分配了一个空值。我们将 typeof 运算符与一个空值变量一起使用,它返回 'object'。 另外,我们将 typeof 运算符与第二个未声明的变量一起使用;它返回'undefined'。

<html> <head> <title>Check for variable is undefined or null in JavaScript.</title> </head> <body> <h2>Check for variable is undefined or using <i> typeof operator</i>. </h2> <h4>output for let var1 = null;</h4> <div id = "output1"> </div> <h4>output for undeclared variable;</h4> <div id = "output2"></div> <script> let output1 = document.getElementById("output1"); let output2 = document.getElementById("output2"); let var1 = null; output1.innerHTML = typeof ( var1 ); output2.innerHTML = typeof ( var2 ); // checking the type of undeclared variable </script> </body> </html>

在上面的输出中,用户可以看到 typeof 运算符返回 null 变量的对象数据类型。

我们已经学会了检查变量是否为 undefined 或 null。null 变量和 undefined 变量之间的区别在于这两个变量的数据类型;null 变量是对象类型,而 undefined 是未定义的数据类型。

如果用户正在检查 null 变量,他们可以使用 if-else 条件语句的第一种方法。要检查未声明的变量,用户必须使用第二种方法。否则,当我们使用未声明的变量时,JavaScript 代码会出错。


相关文章