前言
在javascript里,可以有多种判断对象属性是否存在的方法,使用哪种方法来判断,取决于对 “存在” 两个字的定义是什么。
方法1:对比undefined
此种方法的缺点是,如果对象真的有一个 id 属性,但是值为undefined
的话,此方法会判断为 id 属性不存在。
方法2:使用Object.keys()
Object.keys()
可以获取到一个对象全部自有的可枚举属性,如果一个属性不符合 “自有” 和 “可枚举” 这两个条件的话,Object.keys()
是获取不到的,就会导致判断为属性不存在。
自有
“自有”的意思是这个属性是对象自己的,而不是在它的原型链上,比如:
可枚举
每一个对象属性都有一个描述符,例如下面代码是获取 obj 对象 id 属性的描述符:
输出内容中的 enumerable
就是可枚举的描述符,值为 true 代表此属性可枚举可遍历,false 代表不可以。
方法3:使用hasOwnProperty()
方法4:使用in
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。