提示:记录工作中遇到的需求及解决办法
文章目录
前言
如何判断一个对象为空是我们在开发中经常会遇到的问题,今天我们来聊聊几种经常使用的方法,以及在不同的场景下我们如何去使用。
提示:以下是本篇文章正文内容,下面案例可供参考
1. JSON.stringify
JSON.stringify
方法可以使对象序列化,转为相应的 JSON 格式。
const obj = {
};
console.log(JSON.stringify(obj) === '{}') // true
缺点:如果存在 undefined
、任意的函数
以及 symbol
值,在序列化过程中会被忽略(出现在非数组对象的属性值中时)或者被转换成 null(出现在数组中时)。
更多如下示例:
const obj = {
a: undefined,
b: function() {
},
c: Symbol()
}
console.log(JSON.stringify(obj) === '{}') // true
2. for in 配合 hasOwnProperty
使用 for in
对当前对象进行遍历:
const obj = {
}
Object.prototype.a = 1
function isEmptyObj(obj) {
let flag = true
for (let o in obj) {
flag = false
break
}
return flag
}
console.log(isEmptyObj(obj)) // false
由于 for in
在进行对象遍历时,会遍历对象原型上的属性,而我们只希望得到其自身的属性,这时可以使用 hasOwnProperty
来实现,
如下:
const obj