如何在 JavaScript 中检查空/未定义/null 字符串?
在 JavaScript 中,“”表示空字符串,我们可以使用 null 关键字将字符串初始化为 null 值。如果我们不给任何变量赋值,则默认情况下它是未定义的。
有时,在处理字符串时,我们需要检查字符串是否为空、未定义或 null。例如,我们通过 HTML 表单获取用户详细信息,用户可以向输入字段添加空字符串;我们需要验证输入字段并向用户显示错误消息。
在本教程中,我们将学习三种方法来检查字符串是否为空、null 或未定义。
使用 string.trim() 方法和 string.length 属性
string.trim() 方法允许我们删除字符串开头的空格。因此,我们可以删除字符串开头的空格。之后,我们可以检查字符串的长度是否为零,如果是,则该字符串可以为空、null 或未定义。
语法
用户可以按照以下语法使用 string.trim() 方法和 string.length() 属性来检查空、未定义或 null 字符串。
let string1 = " "; string1 = string1.trim(); if (string1.length == 0) { // string is empty }
示例
在下面的示例中,我们创建了两个不同的字符串。一个是空的,另一个只包含空格。用户可以在输出中看到,我们的逻辑表明这两个字符串都是空的,因为第二个字符串只包含空格。
<html> <body> <h3> Using the<i> string.trim() method and string.length() </i> property to check whether a string is null, undefined, or empty. </h3> <p id = "output"> </p> <script> let output = document.getElementById("output"); let string1 = ""; let string2 = " "; string1 = string1.trim(); string2 = string2.trim(); if (string1.length == 0) { output.innerHTML += "The string1 is empty! </br>"; } if (string2.length == 0) { output.innerHTML += "The string2 is empty! </br>"; } </script> </body> </html>
将字符串转换为布尔值并检查它是否为空、未定义或 null
我们可以使用 Boolean 构造函数或双非运算符(!!)将字符串转换为布尔值。当我们将任何变量转换为布尔值时,它会将所有虚假值映射为 false,将其他值映射为 true。在 JavaScript 中,空字符串、null 和未定义是虚假值,因此当我们将其转换为布尔值时,Boolean() 构造函数总是返回 false。
语法
在下面的语法中,我们使用了 Boolean() 构造函数将字符串转换为布尔值并检查它是否为空。
let string3 = undefined; if (Boolean(string3) == false) { // string3 is either null, empty, or undefined }
示例
在下面的示例中,我们转换了三个包含空、null 和未定义值的字符串。此外,我们创建了 isValid() 函数,该函数将字符串作为参数并将其转换为布尔值。之后,我们检查 Boolean() 构造函数返回的字符串值是 true 还是 false。
<html> <body> <h3> Converting the<i> string to boolean </i> to check whether a string is null, undefined, or empty. </h3> <p id = "output"> </p> <script> let output = document.getElementById("output"); let str1 = ""; let str2 = null; let str3 = undefined; function isValid(str) { if (Boolean(str)) { output.innerHTML += "The " + str + " is valid <br/>"; } else { output.innerHTML += "The " + str + " is not valid <br/>"; } } isValid(str1); isValid(str2); isValid(str3); isValid("Hello"); </script> </body> </html>
在上面的输出中,用户可以观察到 Boolean 构造函数对于空、null 和未定义的字符串返回 false,而对于“Hello”字符串返回 true。
使用严格相等运算符
严格相等运算符允许我们比较两个变量的值,它也比较变量的类型。在这里,我们将我们的字符串与“”,null 和 undefined 进行比较。此外,我们将使用 OR 运算符将所有三个条件一起用于单个 if 条件。
如果三个条件中的任何一个为真,则表示字符串无效。
语法
用户可以按照以下语法使用严格相等运算符来检查字符串是否为空、null 或未定义。
if (str === "" || str === null || str === undefined) { // string is not valid } else { // string is valid }
示例
在下面的示例中,isValid() 函数包含 if-else 语句,该语句检查字符串是否有效。如语法中所述,我们在 if 语句条件中使用了 OR 运算符,同时检查空、null 和未定义字符串的所有三个条件。
<html> <body> <h3> Using the<i> strict equality operator </i> to check whether string is null, undefined or empty.</h3> <p id = "output"> </p> <script> let output = document.getElementById("output"); function isValid(str) { if (str === "" || str === null || str === undefined) { output.innerHTML += "The " + str + " is not valid <br/>"; } else { output.innerHTML += "The " + str + " is valid <br/>"; } } isValid(null); isValid(undefined); isValid("TutorialsPoint"); </script> </body> </html>
用户学习了三种方法来检查字符串是否为空、未定义或 null。这三种方法中最好的一种是第二种方法,它使用 Boolean() 构造函数。
但是,用户可以使用双非运算符(!!),它提供简单的语法,但不适合初学者。