js判断对象是否为空的几种方法

更新时间:2023-06-09 11:09:13 阅读: 评论:0

js判断对象是否为空的⼏种⽅法
这个⽅法⽐较讨巧,也是最容易想到的。我们都知道JSON.stringify()的作⽤是将Javascript对象转换为JSON字符串。所以,可以通过该⽅法判断对象是否为空:const obj = {}
const obj2 = new Object()
console.log(JSON.stringify(obj) === '{}')  // true
console.log(JSON.stringify(obj2) === '{}')  // true
注意:
如何练口语该⽅法有个缺点,JSON.stringify()只能序列化对象的可枚举的⾃有属性,即如果有属性是不可枚举或继承属性的话,结果也是true
const obj = {}商务英语课程
// 在原型上添加⼀个可枚举属性
Object.prototype.name = 'Jack'
console.log(JSON.stringify(obj) === '{}')  // true
// 在obj对象上添加⼀个不可枚举属性
Object.defineProperty(obj, 'age', {
value: 18,
enumerable: fal
})
console.log(JSON.stringify(obj) === '{}')  // true
accidental扩展:
在实际开发项⽬中,我觉得JSON.stringify()的使⽤场景还是挺多的,⽐如:
使⽤ JSON.stringify() / JSON.par() 结合 localStorage / ssionStorage 实现对象的缓存存取;
实现对象的深拷贝(注意:若对象中包含时间对象、函数、undefined等该⽅法存在的问题)。
vocabulary
更多内容请移步
使⽤in循环遍历对象除Symbol以外的所有可枚举属性,当对象有属性存在返回fal,否则返回true。
const obj = {}
function isObjectEmpty(obj){
teresa and ting
for(var key in obj){
honest
如何提高团队凝聚力return fal
alive
}
return true
}
console.log(isObjectEmpty(obj)) // true
在实际开发⼯作中,有时需要只考虑对象⾃⾝的属性,⽽不是继承来的,这时可以配合OwnPropertyNames() 或 Object.hasOwnProperty() 来进⾏过滤。function isObjectEmpty (obj) {
for (let key in obj) {
if(obj.hasOwnProperty(key)) return fal
}
return true
}
const obj = {}
console.OwnPropertyNames(obj).length === 0)  // true
注意:该⽅法对于不可枚举的属性也能检测出来。
Object.defineProperty(obj, 'age', {
课程表英语value: 18,
enumerable: fal
})
console.OwnPropertyNames(obj).length === 0)  // fal
Object.keys() 是ES5 新增的⼀个对象⽅法,该⽅法返回⼀个数组,包含指定对象⾃有的可枚举属性(不含继承的和Symbol属性)。⽤此⽅法只需要判断返回的数组长度是否为零,如果为零的话就是空对象。
const obj = {}
console.log(Object.keys(obj).length === 0)  //true
不要脸英语Object.prototype.name = 'Jack'
Object.defineProperty(obj, 'age', {
value: 18,
enumerable: fal
})
console.log(Object.keys(obj).length === 0)  //true
有很多外部的库也可以⽤来检查空对象。并且,它们⼤多数对旧的浏览器有很好的⽀持。
jQuery 中的⽅法
jQuery.isEmptyObject({})  // true
Lodash的⽅法
_.isEmpty({})  // true
使⽤该⽅法的缺点就是需要安装额外的库。所以,根据开发情况选择适合的就好。

本文发布于:2023-06-09 11:09:13,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/78/910693.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:对象   属性   返回   数组
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图