JS对象属性的检测与获取操作实例分析
本文实例讲述了JS对象属性的检测与获取操作。分享给大家供大家参考,具体如下:
1.1in运算符
in运算符用于检查对象是否包含某个属性(注意,检查的是键名,不是键值),如果包含就返回true,否则返回false
varobj={p:1} 'p'inobj//true 'toString'inobj//true
上面代码中,obj对象上有一个p属性,所以使用in运算符时,得到true,但toString并没有在obj对象上,为什么也返回true呢,这是因为in运算符,不能识别哪些属性是对象自身的,哪些是继承的。因为toString是继承自obj的原型对象,所以会返回true。
1.2for…in循环
for…in循环用来遍历一个对象的全部属性。
varobj={a:1,b:2,c:3}; for(variinobj){ console.log(obj[i]); }
for…in循环有两个使用注意点
- 它遍历的是对象所有可遍历的属性,会跳过不可遍历的属性。
- 它不仅遍历对象自身的属性,还遍历继承的属性。
如果想得到自身的属性,需要结合hasOwnProperty方法,在循环内部判断一下,某个属性是否为对象自身的属性。
varperson={name:'老张'}; for(varkeyinperson){ if(person.hasOwnProperty(key)){ console.log(key); } }
想要得到自身的属性还有另外两种方法:
es5:
利用Object.getOwnPropertyNames(obj)
varperson={name:'老张'} varprops=Object.getOwnPropertyNames(person)
es6:
利用Object.keys(obj)
varperson={name:'老张'} varprops=Object.keys(person)
感兴趣的朋友可以使用在线HTML/CSS/JavaScript代码运行工具:http://tools.jb51.net/code/HtmlJsRun测试上述代码运行效果。
更多关于JavaScript相关内容感兴趣的读者可查看本站专题:《javascript面向对象入门教程》、《JavaScript错误与调试技巧总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript遍历算法与技巧总结》及《JavaScript数学运算用法总结》
希望本文所述对大家JavaScript程序设计有所帮助。