JavaScript如何判断一个对象是空对象(附5种常见方法)

 更新时间:2025年04月01日 09:12:17   作者:Web - Nancy  
在JavaScript中判断对象的类型是开发过程中的一个常见需求,尤其是在处理不确定类型的数据时,这篇文章主要介绍了JavaScript如何判断一个对象是空对象的相关资料,需要的朋友可以参考下

一、 使用 Object.keys() 方法

1、描述

Object.keys() 方法会返回一个对象自身的所有可枚举属性的数组。如果该数组的长度为 0,则表示该对象是空的。

2、示例

function isEmpty(obj) {
  return Object.keys(obj).length === 0;
}

console.log(isEmpty({})); // true
console.log(isEmpty({a: 1})); // false

二、 使用 Object.getOwnPropertyNames() 方法

1、描述

Object.getOwnPropertyNames() 方法返回一个对象自身的所有属性(包括不可枚举属性,但不包括继承的属性)。如果该数组的长度为 0,则表示该对象是空的。

2、示例

function isEmpty(obj) {
  return Object.getOwnPropertyNames(obj).length === 0;
}

console.log(isEmpty({})); // true
console.log(isEmpty({a: 1})); // false

三、使用 JSON.stringify() 方法

1、描述

JSON.stringify() 方法将对象转换为 JSON 字符串。如果对象为空,它会返回 "{}",可以通过与该字符串做比较来判断对象是否为空。

2、示例

function isEmpty(obj) {
  return JSON.stringify(obj) === '{}';
}

console.log(isEmpty({}));        // true
console.log(isEmpty({a: 1}));   // false

四、使用 for...in 循环

1、描述

for...in 循环会遍历对象的所有可枚举属性。如果循环执行一次,则说明对象不是空的。如果没有执行循环,则说明对象为空。

2、示例

function isEmpty(obj) {
  for (let key in obj) {
    if (obj.hasOwnProperty(key)) {
      return false;
    }
  }
  return true;
}

console.log(isEmpty({})); // true
console.log(isEmpty({a: 1})); // false

五、使用 Object.entries() 方法

1、描述

Object.entries() 方法返回一个数组,数组中的每一项都是一个 [key, value] 键值对数组。如果该数组的长度为 0,则表示该对象为空。

2、示例

function isEmpty(obj) {
  return Object.entries(obj).length === 0;
}

console.log(isEmpty({})); // true
console.log(isEmpty({a: 1})); // false

六、Tips

1、原型链上的属性:以上方法都是检查对象本身的属性,而不考虑原型链上的属性。如果您需要考虑原型链上的属性,可以使用 for...in 循环,并结合 hasOwnProperty 方法来排除继承的属性。

2、不包括继承的属性:例如,如果您使用 Object.keys() 或 Object.getOwnPropertyNames(),它们只会列出对象本身的属性,而不会列出从原型继承来的属性。

七、总结

1、最常用和推荐的方法是使用 Object.keys() 或 Object.entries(),它们非常简洁且直观。

2、如果您需要兼容老版本的 JavaScript 环境(如 ES5),则可以使用 for...in 循环或 Object.getOwnPropertyNames()。

到此这篇关于JavaScript如何判断一个对象是空对象的文章就介绍到这了,更多相关JS判断一个对象是空对象内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • JavaScript:Div层拖动效果实例代码

    JavaScript:Div层拖动效果实例代码

    这篇文章介绍了JavaScript:Div层拖动效果实例代码,有需要的朋友可以参考一下
    2013-08-08
  • js 通过Object.defineProperty() 定义和控制对象属性

    js 通过Object.defineProperty() 定义和控制对象属性

    这篇文章主要介绍了js 通过Object.defineProperty() 定义和控制对象属性,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的朋友可以参考一下
    2022-08-08
  • Js中FileReader读取文件内容方法详解(async/await)

    Js中FileReader读取文件内容方法详解(async/await)

    这篇文章主要给大家介绍了关于Js中FileReader读取文件内容(async/await)的相关资料,FileReader是前端进行文件处理的一个重要的Api,特别是在对图片的处理上,如果你想知道图片的处理原理,你就永远不可能绕过它,需要的朋友可以参考下
    2023-11-11
  • javascript正则表达式模糊匹配IP地址功能示例

    javascript正则表达式模糊匹配IP地址功能示例

    这篇文章主要介绍了javascript正则表达式模糊匹配IP地址功能,结合简单实例形式演示了JS模糊匹配IP地址的实现方法,涉及针对数字及字符串的相关正则判定与匹配操作技巧,需要的朋友可以参考下
    2017-01-01
  • ES2020让代码更优美的运算符 (?.) (??)

    ES2020让代码更优美的运算符 (?.) (??)

    这篇文章主要介绍了ES2020让代码更优美的运算符 (?.) (??),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-01-01
  • 详解js数组的完全随机排列算法

    详解js数组的完全随机排列算法

    本文主要对常见的完全错误的随机排列算法进行介绍分析,并介绍了经典的随机排列算法,具有很好的参考价值,需要的朋友一起来看下吧
    2016-12-12
  • JavaScript 中文转拼音实现代码 有些bug

    JavaScript 中文转拼音实现代码 有些bug

    在做项目时候遇到一个小小的显示客户部门名称(拼音)的业务,就是在部门名称下有相应的拼音,而在现有的数据库中没有相应字段,并且部门数量比较多,添加起来比较费时,就想能否在js中实现,在页面中处理。
    2010-03-03
  • eslint+prettier统一代码风格的实现方法

    eslint+prettier统一代码风格的实现方法

    这篇文章主要介绍了eslint+prettier 统一代码风格的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-07-07
  • js数组中删除重复值的代码小结

    js数组中删除重复值的代码小结

    最近需要用js控制数组,里面可能有一些重复的值,需要去掉,特为大家整理了这篇文章。
    2011-01-01
  • JavaScript代码中两种常见的安全技术:混淆和反混淆

    JavaScript代码中两种常见的安全技术:混淆和反混淆

    文章介绍JavaScript混淆与反混淆技术,用于保护代码及逆向分析,涵盖变量名替换、字符串混淆等手段,以及反调试措施,通过实战案例展示如何利用开发者工具进行反混淆和调试
    2025-06-06

最新评论