判断空对象的方法
在 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()
目录