原文:JavaScript Check Empty String – Checking Null or Empty in JS,作者:Joel Olawanle

在很多情况下你可能需要检查字符串是否为空。最重要的情况之一是当你从数据库、API 或输入字段中检索数据时。

在本文中,你将学习如何在 JavaScript 中检查字符串是否为空或 null。我们将看到许多你可以使用的示例和方法,以便你理解它们,并决定使用哪一个以及何时使用。

Null 和 Empty 有什么区别

在开始之前,你需要了解 Null 和 Empty 这两个术语的含义,并理解它们不是同义词。

例如,如果我们声明一个变量并为其分配一个空字符串,然后声明另一个变量并为其分配 Null 值,我们可以通过查看它们的数据类型来区分它们:

let myStr1 = "";
let myStr2 = null;

console.log(typeof myStr1); // "string"
console.log(typeof myStr2); // "object"

看上面的代码,我们可以看到编译器/计算机对每个值的解释不同。因此,当需要检查时,我们必须为这两种类型的值传递条件,因为我们人类经常将 null 称为空。

如何在 JavaScript 中检查空值或 Null

我们现在知道空字符串是不包含字符的字符串。检查字符串是否为空非常简单。我们可以使用两种有些相似的主要方法,我们将使用严格相等运算符(==)。

如何在 JavaScript 中使用 length 属性检查空字符串

在第一种方法中,我们将通过添加 length 属性来检查字符串的长度。我们将检查长度是否等于 0。如果等于 0,则表示字符串为空,如下所示:

let myStr = "";

if (myStr.length === 0) {
  console.log("This is an empty string!");
}

以上代码将返回:

"This is an empty string!"

但不幸的是,这种方法可能不适用于所有情况。例如,如果我们有一个包含空格的字符串,如下所示:

let myStr = "  ";

if (myStr.length === 0) {
  console.log("This is an empty string!");
}else{
  console.log("This is NOT an empty string!");
}

这将返回:

"This is NOT an empty string!"

我们可以先使用 trim() 方法删除空格,然后再检查字符串的长度以查看其是否为空,以轻松修复此错误,如下所示:

let myStr = "  ";

if (myStr.trim().length === 0) {
  console.log("This is an empty string!");
}else{
  console.log("This is NOT an empty string!");
}

这段代码将返回:

"This is an empty string!"

注意:如果值为 null,这将引发错误,因为 length 属性不适用于 null。

为了解决这个问题,我们可以添加一个参数来检查值的类型是否为字符串,如果不是则跳过此检查:

let myStr = null;

if (typeof myStr === "string" && myStr.trim().length === 0) {
  console.log("This is an empty string!");
}

如何通过字符串比较检查 JavaScript 中的空字符串

检查字符串是否为空的另一种方法是将字符串与空字符串进行比较。

例如:

let myStr = "";

if (myStr === "") {
  console.log("This is an empty string!");
}

与前面的方法一样,如果我们有空格,则不会将字符串读取为空。所以我们必须首先使用 trim() 方法去除所有形式的空格:

let myStr = "   ";

if (myStr.trim() === "") {
  console.log("This is an empty string!");
} else {
  console.log("This is NOT an empty string!");
}

就像我们对 length 方法所做的那样,我们也可以检查值的类型,这样它只会在值是字符串时运行:

let myStr = null;

if (typeof myStr === "string" && myStr.trim() === "") {
  console.log("This is an empty string!");
}

如何在 JavaScript 中检查 Null

到目前为止,我们已经了解了如何使用 length 和比较方法检查字符串是否为空。

现在,让我们看看如何检查它是否为 null,然后检查两者。要检查 null,我们只需将该变量与 null 本身进行比较,如下所示:

let myStr = null;

if (myStr === null) {
  console.log("This is a null string!");
}

这将返回:

"This is a null string!"

如何在 JavaScript 中检查 Null 或空字符串

在这一点上,我们已经学会了如何检查一个空字符串以及一个变量是否设置为 null。现在让我们看一下这两种方式:

let myStr = null;

if (myStr === null || myStr.trim() === "") {
  console.log("This is an empty string!");
} else {
  console.log("This is not an empty string!");
}

这将返回:

"This is an empty string!"

小结

在本文中,我们学习了如何检查空字符串或 null,以及为什么它们不一样。

祝你编码愉快!