判断空对象的方法

在 JavaScript 中判断一个对象是否为空对象

问题

如何判断一个对象是不是空对象?

解答

方法1:使用 Object.keys()

const obj = {};
const isEmpty = Object.keys(obj).length === 0;
console.log(isEmpty); // true

通过 Object.keys() 获取对象的可枚举属性数组,判断数组长度是否为 0。

方法2:使用 JSON.stringify()

const obj = {};
const isEmpty = JSON.stringify(obj) === '{}';
console.log(isEmpty); // true

将对象序列化为 JSON 字符串,判断是否等于 '{}'

关键点

  • Object.keys() 方法更高效,推荐使用
  • JSON.stringify() 会忽略函数、Symbol 等属性,可能导致误判
  • 两种方法都只检查可枚举属性,不包括原型链上的属性
  • 如果需要检查所有属性(包括不可枚举属性),可使用 Object.getOwnPropertyNames()