JS对象属性的检测与获取操作实例分析


Posted in Javascript onMarch 17, 2020

本文实例讲述了JS对象属性的检测与获取操作。分享给大家供大家参考,具体如下:

1.1 in运算符

in运算符用于检查对象是否包含某个属性(注意,检查的是键名,不是键值), 如果包含就返回true,否则返回false

var obj = { p: 1 }
'p' in obj // true
'toString' in obj // true

上面代码中,obj对象上有一个p属性,所以使用in运算符时,得到true,但toString并没有在obj对象上,为什么也返回true呢,这是因为in运算符,不能识别哪些属性是对象自身的,哪些是继承的。因为toString是继承自obj的原型对象,所以会返回true。

1.2 for … in 循环

for … in 循环用来遍历一个对象的全部属性。

var obj = {a: 1, b: 2, c: 3};

for (var i in obj) {
 console.log(obj[i]);
}

for … in 循环有两个使用注意点

  1. 它遍历的是对象所有可遍历的属性,会跳过不可遍历的属性。
  2. 它不仅遍历对象自身的属性,还遍历继承的属性。

如果想得到自身的属性,需要结合hasOwnProperty方法,在循环内部判断一下,某个属性是否为对象自身的属性。

var person = { name: '老张' };

for (var key in person) {
 if (person.hasOwnProperty(key)) {
  console.log(key);
 }
}

想要得到自身的属性还有另外两种方法:

es5:

利用Object.getOwnPropertyNames(obj)

var person = { name: '老张' }
var props = Object.getOwnPropertyNames(person)

es6:

利用Object.keys(obj)

var person = { name: '老张' }
var props = Object.keys(person)

感兴趣的朋友可以使用在线HTML/CSS/JavaScript代码运行工具:http://tools.3water.com/code/HtmlJsRun测试上述代码运行效果。

希望本文所述对大家JavaScript程序设计有所帮助。

Javascript 相关文章推荐
在VS2008中使用jQuery智能感应的方法
Dec 30 Javascript
Extjs TimeField 显示正常时间格式的代码
Jun 28 Javascript
jQuery实现可拖动的浮动层完整代码
May 27 Javascript
浅析Node.js的Stream模块中的Readable对象
Jul 29 Javascript
jQuery右下角旋转环状菜单特效代码
Aug 10 Javascript
谈一谈javascript中继承的多种方式
Feb 19 Javascript
Bootstrap中表单控件状态(验证状态)
Aug 04 Javascript
js匿名函数使用&传参(实例)
Sep 08 Javascript
mpvue+vant app搭建微信小程序的方法步骤
Feb 11 Javascript
浅谈Three.js截图并下载的大坑
Nov 01 Javascript
Vue解析剪切板图片并实现发送功能
Feb 04 Javascript
vue实现移动端H5数字键盘组件使用详解
Aug 25 Javascript
JS前端模块化原理与实现方法详解
Mar 17 #Javascript
javascript中innerHTML 获取或替换html内容的实现代码
Mar 17 #Javascript
Vue中keep-alive 实现后退不刷新并保持滚动位置
Mar 17 #Javascript
用js编写留言板
Mar 17 #Javascript
Vue脚手架编写试卷页面功能
Mar 17 #Javascript
基于JavaScript实现留言板功能
Mar 16 #Javascript
JS实现简易留言板(节点操作)
Mar 16 #Javascript
You might like
全国FM电台频率大全 - 16 河南省
2020/03/11 无线电
PHP的fsockopen、pfsockopen函数被主机商禁用的解决办法
2014/07/08 PHP
php中strlen和mb_strlen用法实例分析
2016/11/12 PHP
根据分辨率不同,调用不同的css文件
2006/07/07 Javascript
JS应用之禁止抓屏、复制、打印
2008/02/21 Javascript
jquery 查找iframe父级页面元素的实现代码
2011/08/28 Javascript
用js实现输入提示(自动完成)的实例代码
2013/06/14 Javascript
JS运动基础框架实例分析
2015/03/03 Javascript
jQuery实现仿新浪微博浮动的消息提示框(可智能定位)
2015/10/10 Javascript
使用jQuery Ajax 请求webservice来实现更简练的Ajax
2016/08/04 Javascript
生成无限制的微信小程序码的示例代码
2019/09/20 Javascript
Vue页面切换和a链接的本质区别详解
2019/11/12 Javascript
Js视频播放器插件Video.js使用方法详解
2020/02/04 Javascript
JavaScript async/await原理及实例解析
2020/12/02 Javascript
浅析Python3爬虫登录模拟
2018/02/07 Python
如何使用 Pylint 来规范 Python 代码风格(来自IBM)
2018/04/06 Python
Django项目中用JS实现加载子页面并传值的方法
2018/05/28 Python
python3实现随机数
2018/06/25 Python
Flask之请求钩子的实现
2018/12/23 Python
python 进程间数据共享multiProcess.Manger实现解析
2019/09/23 Python
python变量的作用域是什么
2020/05/26 Python
Python将字典转换为XML的方法
2020/08/01 Python
Java面试题汇总
2015/12/06 面试题
程序员跳槽必看面试题总结
2013/06/28 面试题
致跳远、跳高运动员广播稿
2014/01/09 职场文书
县优秀教师事迹材料
2014/01/31 职场文书
物业管理工作方案
2014/05/10 职场文书
体现团队精神的口号
2014/06/06 职场文书
离婚协议书该怎么写
2014/10/04 职场文书
工作批评与自我批评范文
2014/10/16 职场文书
加入学生会自荐书
2015/03/05 职场文书
停课通知书
2015/04/24 职场文书
销售合作意向书范本
2015/05/08 职场文书
幼儿园安全管理制度
2015/08/05 职场文书
使用Spring处理x-www-form-urlencoded方式
2021/11/02 Java/Android
SQL语句中EXISTS的详细用法大全
2022/06/25 MySQL