在盘点js判空方法之前我们先来了解下面的三个方法。
object.keys()方法是以对象为参数,返回一个包含该对象内所匹配的属性和方法的数组
var obj = { name: "cxy", age: "19" }; var objarray = obj纯种藏獒价格ect.getownpropertynames(obj)沙和尚简介; console.log(objarray)
可以看到objarray为返回值,且返回值为以对象内的属性为内容的数组
object.getownpropertynames()
方法同样是也是以对象为参数,返回一个包含该对象内所匹配的属性和方法的数组
大家在这里会发出疑问,这两个有啥区别?object.getownpropertynames()
可以返回所有的属性,而object.keys()
只能返回可枚举属性,诶?到这里大家又疑惑了可枚举属性又是个啥?不要着急,我来解释一下什么叫可枚举属性
可枚举或者不可枚举属性是对象内部通过可枚举标志enumerable来进行区分的,在默认情况下,我们obj.name = "cxy"
为对象新增了一个属性后,其可枚举标志enumerable为ture,而当其值为fal的时候它是不可枚举的,当我们对对象进行for
,object.keys()
,json.stringify()
的时候不可枚举属性是找不出来的,我们可以理解为不可枚举属性是隐身的
现在我们拿上面的object.getownpropertynames
和object.keys()
进行2016年奥运会在哪个国家举行实战举例,我们通过defineproperty来为对象添加age属性,因为该方法可以设置枚举标志,这里设置为fal,可以看到下面两个不同的返回结果
var stuobj = { name: "cxy"}object.defineproperty(stuobj, 'age', { value: "18", enumerable: fal});console.log(object.keys(stuobj))console.log(object.getownpropertynames(stuobj))
hasownproperty()
是用来判断某对象是否含有某属性的,其参数为属性名
var stuobj = { name: "cxy" } console.log(stuobj.hasownproperty('name'))
但是这里要注意一个问题就是,hasownpropert毕竟是曾经y()
判断继承属性的时候会返回fal,继承属性即对象从原型对象上继承的属性,比如说tostring
这种方式是比较简单的了,使用json.stringify
将对象转换为字符串,再通过等于判断即可得到对象是否为空的布尔值
let obj = { name: "cxy"}console.log(json.stringify(obj) == '{}')
使用for in的话可以当触发循环的时候返回fal没有触发循环的时候代表对象为空返回ture
let fornull = (items) => { for (let item in items) { return fal } return true}
这里使用了上文提及的object.getownpropertynames,将返回的数组的length作为判断依据。
let stuarray = object.getownpropertynames(obj)console.log(stuarray.length === 0)
和上个方法一样,使用数组作为判断依据
let stuarray = object.getownpropertynames(obj)console.log(stuarray.length === 0)
使用hasownproperty是使用for循环将元素进行判断如果含有则返回fal说明不为空,反之则为空
let fornull = (items) => { for (let item in items) { if(items.hasownproperty(item)){ return fal } } return true}
这种方法很不推荐,但也确实是最容易想到的,主要使用json.stringify()这个方法对对象进行强转,贴出来仅供一看:
var a={};var b=new object();console.log("对象字面量的比较结果:"+(json.stringify(a)=="{}"))console.log("构造函数的比较结果:"+(json.stringify(b)=="{}"))
到此这篇关于js判断空对象方法的文章就介绍到这了,更多相关js判断空对象内容请搜索www.887551.com以前的文章或继续浏览下面的相关文章希望大家以后多多支持www.887551.com!
本文发布于:2023-04-05 01:06:00,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/fanwen/zuowen/004e7bdb3897328bd8f458136e0a9117.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文word下载地址:JS判断空对象的几个方法大盘点.doc
本文 PDF 下载地址:JS判断空对象的几个方法大盘点.pdf
留言与评论(共有 0 条评论) |