为了账号安全,请及时绑定邮箱和手机立即绑定

在 JavaScript 中检查对象是否为空的 7 种简单方法

标签:
JavaScript

0_LPG0_CqU0jD5En6P.png
JavaScript 中如何检查对象是否为空?在 JavaScript 中检查对象是否为空是一个常用需求。在使用数据结构、API 或 JSON 文件时,我们可能会遇到这种情况。我们可能想知道一个对象是否有任何键/属性或值,或者它是否只是空字符串。
通过检查对象是否为空,我们可以在访问不包含属性的对象时避免错误
在本文中,我们将探讨:

  • JavaScript 中检查对象是否为空的不同方法
  • ES6 检查对象是否为空的方法
  • 检查对象是否为空、未定义或 null

JavaScript 对象

在 JavaScript 中,对象只是键值对的集合。其中每个键或属性都是一个字符串,每个值可以是任何 JavaScript 数据类型,包括其他对象。
对象是 JavaScript 中的非原始数据类型之一,它们在 JavaScript 应用程序中广泛使用。下面是一个 JavaScript 对象示例:

// JavaScript person object
const person = {
  firstName: "John",
  lastName: "Doe",
  age: 30,
  address: {
    street: "123 Main St",
    city: "Anytown",
    state: "CA",
    zipCode: "12345"
  }
};

在此示例中,人员是具有四个属性或键的对象。它们是名字、姓氏、年龄和地址。地址属性本身是一个嵌套对象,具有四个属性 street、city、state 和 zipCode。

JavaScript 通过 7 种不同的方式检查对象是否为空

如何检查对象是否为空?

我们可以通过检查某个对象的键或值长度来确定该对象是否为空。 JavaScript 中有不同的方法来检查对象是否为空。在这篇文章中,我们来看看可用于检查对象是否为空的四种不同方法。

使用Object.keys()方法检查对象是否为空

JavaScript Object.keys() 方法返回给定对象的属性名称的数组。如果对象的属性名称JavaScript数组长度等于0,我们可以确认该对象是空的。
让我们看看如何使用 Object.keys() 检查 JavaScript 对象是否为空:

const emptyObject = {};

if (Object.keys(emptyObject).length === 0) {
  console.log("The object is empty");
}

// Output: "The object is empty"

在上面的代码中,如果键长度为0,我们可以确认对象为空。否则,如果对象不为空,我们可以进行对象操作。

JavaScript 使用 for…in 循环检查是否为空对象

for…in 循环迭代对象的可枚举属性并返回每个属性名称。与其他方法相比,此方法需要更多行代码来检查对象是否为空。使用 for…in 循环方法作为检查对象是否为空的最后一个选项。
以下是检查对象为空的示例:

const emptyObject = {};

let isEmpty = true;
for (let key in emptyObject) {
  isEmpty = false;
  break;
}

if (isEmpty) {
  console.log("The object is empty");
}

// Output: "The object is empty"

使用Object.values()方法检查JavaScript对象是否为空

Object.values() 方法返回给定对象的属性值的数组。检查 JavaScript 对象长度属性以确定该对象是否为空。

const emptyObject = {};
if (Object.values(emptyObject).length === 0) {
  console.log("The object is empty");
}

// Output: "The object is empty"

使用 Object.entries() 方法检查空对象

const emptyObject = {};
if (Object.entries(emptyObject).length === 0) {
  console.log("The object is empty");
}

// Output: "The object is empty"

ES6 检查对象是否为空

ES6 引入了三种新方法来获取对象的属性。让我们看看如何在 JavaScript 中使用检查对象是否为空。

JavaScript ES6使用Object.getOwnPropertyNames()方法检查空对象

Object.getOwnPropertyNames() 方法返回所有属性或键名称的数组。此方法还返回给定对象的不可枚举属性。
例子如下:

const emptyObject = {};
if (Object.getOwnPropertyNames(emptyObject).length === 0) {
  console.log("The object is empty");
}

// Output: "The object is empty"

ES6 使用 Reflect.ownKeys() 方法检查对象是否为空

Reflect.ownKeys() 方法返回给定对象的属性名称和符号键的数组。
例子如下:

const emptyObject = {};
if (Reflect.ownKeys(emptyObject).length === 0) {
  console.log("The object is empty");
}

// Output: "The object is empty"

使用Object.getOwnPropertySymbols()方法

Object.getOwnPropertySymbols() 方法返回给定对象的符号键的数组。
例子如下:

const emptyObject = {};

if (Object.getOwnPropertySymbols(emptyObject).length === 0) {
  console.log("The object is empty");
}

// Output: "The object is empty"

如何检查对象键值是否为空?

假设我们有一个包含名字、姓氏和年龄的人员对象。以下是如何检查姓氏是否为空的示例:

let person = {
  firstName: 'John',
  lastName: '',
  age: 30,
};

if (person && person.lastName.trim() === '')
  console.log('Last name is empty');
else {
  console.log('Last name is not empty');
}
// Output: "Last name is empty"

在上面的示例中,JavaScript trim() 方法用于从姓氏键中删除空格字符

检查对象是否为{}、undefined或 null

可以参考以下代码来检查对象是否为空、undefined或 null:

const emptyObject = {};

if (!emptyObject) {
  console.log("The object is null or undefined.");
} else if (Object.keys(emptyObject).length === 0) {
  console.log("The object is empty.");
} else {
  console.log("The object is not empty.");
}

// Output: "The object is empty."

在上面的代码中,我们首先使用逻辑非 (!) 运算符检查对象是否为 null 或未定义。如果它为空或未定义,我们会向控制台打印一条消息“The object is null or undefined.”。
当对象不为 null 或未定义时,我们使用 Object.keys() 方法检查对象是否为空。如果对象为空,我们将向控制台打印一条消息“The object is empty.”。
如果 JavaScript 对象不为空,我们会向控制台打印一条消息“The object is not empty.”。

总结

检查对象是否为空、undefined或 null 在 JavaScript 编程中至关重要。我们在本文中探索了不同的方法来确定对象是否具有任何属性。这可以帮助您在尝试访问对象中实际上不存在的属性时避免运行时错误。
我们介绍的方法包括 Object.keys()、for…in 循环、Object.values()、Object.entries()、Object.getOwnPropertyNames()、Reflect.ownKeys() 和 Object.getOwnPropertySymbols()。
通过使用这些方法,您可以轻松检查 JavaScript 中的对象是否为空,并确保主动防止运行时错误。

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消