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

Posted lio_zero

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在 JavaScript 中判断一个对象是否为空?相关的知识,希望对你有一定的参考价值。

我们想要判断对象是否为空,像基本类型那样比较是不可以的

const obj = {}
console.log(obj === {}) // false 

可以看到,两个都是空对象,但是进行比较,返回的是 false

因为对象是引用类型,使用 ===== 比较的是引用(内存地址),因此您不能使用它们比较两个对象。

下面我们来介绍三种判断空对象的方法。

for...in

for...in 语句以任意顺序遍历一个对象的除 Symbol 以外的可枚举属性。

根据 for...in 遍历对象,如果存在则返回 非空,否则返回

const obj = {}
const user = {
  name: \'IU\'
}

const isEmpty = (obj) => {
  for (let i in obj) {
    return \'非空\'
  }
  return \'空\'
}

console.log(empty(obj)) // "空"
console.log(empty(user)) // "非空"

JSON.stringify()

利用 JSON 的 JSON.stringify() 方法来判断。将空对象转化为字符串 \'{}\' 来进行判断。

const isEmpty = (obj) => JSON.stringify(obj) === \'{}\' ? \'空\' : \'非空\'

console.log(empty(obj)) // "空"
console.log(empty(user)) // "非空"

Object.keys()

Object.keys() 方法会返回一个由一个给定对象的自身可枚举属性组成的数组。如果对象为空,将返回一个空数组。

根据 Object.keys() 返回的属性数组,使用 length 属性,判断长度是否为 0。

const isEmpty = (obj) => Object.keys(obj).length === 0 ? \'空\' : \'非空\'

console.log(empty(obj)) // "空"
console.log(empty(user)) // "非空"

以上是关于如何在 JavaScript 中判断一个对象是否为空?的主要内容,如果未能解决你的问题,请参考以下文章

js中如何判断一个DOM对象是不是存在?

如何判断出一个js对象是不是一个dom对象

javascript判断对象是否为domElement

如何在javascript中检查Django对象是不是为None?

在javascript中如何判断一个变量为空或者undefine

如何判断Javascript对象是否存在