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 相关文章推荐
基于Css3和JQuery实现打字机效果
Aug 11 Javascript
JQuery.Ajax()的data参数类型实例详解
Nov 20 Javascript
javascript实现随机显示星星特效
Jan 28 Javascript
JavaScript性能优化总结之加载与执行
Aug 11 Javascript
详解用webpack2.0构建vue2.0超详细精简版
Apr 05 Javascript
Javascript实现的StopWatch功能示例
Jun 13 Javascript
JS实现非首屏图片延迟加载的示例
Jan 06 Javascript
ES6 系列之 WeakMap的使用示例
Aug 06 Javascript
element-ui中select组件绑定值改变,触发change事件方法
Aug 24 Javascript
深入Node TCP模块的理解
Mar 13 Javascript
浅析Angular 实现一个repeat指令的方法
Jul 21 Javascript
vue下拉刷新组件的开发及slot的使用详解
Dec 23 Vue.js
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
PHP多态代码实例
2015/06/26 PHP
PHP实现的折半查找算法示例
2017/12/19 PHP
php使用mysqli和pdo扩展,测试对比mysql数据库的执行效率完整示例
2019/05/09 PHP
JQuery 自定义CircleAnimation,Animate方法学习笔记
2011/07/10 Javascript
js取消单选按钮选中示例代码
2013/11/14 Javascript
使用javascript实现有效时间的控制,并显示将要过期的时间
2014/01/02 Javascript
JS小游戏之宇宙战机源码详解
2014/09/25 Javascript
javascript复制粘贴与clipboardData的使用
2014/10/16 Javascript
js实现多选项切换导航菜单的方法
2015/02/06 Javascript
CSS中position属性之fixed实现div居中
2015/12/14 Javascript
easyui取消表单实时验证,提交时统一验证的简单实例
2016/11/07 Javascript
react-router v4如何使用history控制路由跳转详解
2018/01/09 Javascript
Node.js中你不可不精的Stream(流)
2018/06/08 Javascript
vue 界面刷新数据被清除 localStorage的使用详解
2018/09/16 Javascript
VUE 配置vue-devtools调试工具及安装方法
2018/09/30 Javascript
jquery使用FormData实现异步上传文件
2018/10/25 jQuery
解决vue net :ERR_CONNECTION_REFUSED报错问题
2020/08/13 Javascript
基于vue实现微博三方登录流程解析
2020/11/04 Javascript
在Python中操作时间之mktime()方法的使用教程
2015/05/22 Python
pandas pivot_table() 按日期分多列数据的方法
2018/11/16 Python
详解Python:面向对象编程
2019/04/10 Python
Python基础学习之函数方法实例详解
2019/06/18 Python
解决Django中修改js css文件但浏览器无法及时与之改变的问题
2019/08/31 Python
Django生成PDF文档显示网页上以及PDF中文显示乱码的解决方法
2019/12/17 Python
python 实现人和电脑猜拳的示例代码
2020/03/02 Python
keras 多gpu并行运行案例
2020/06/10 Python
Python Selenium模块安装使用教程详解
2020/07/09 Python
Python 创建守护进程的示例
2020/09/29 Python
旅游与酒店管理的自我评价分享
2013/11/03 职场文书
餐饮加盟计划书
2014/01/10 职场文书
产品陈列协议书(标准版)
2014/09/17 职场文书
倡议书格式及范文
2015/04/29 职场文书
公安纪律作风整顿心得体会
2016/01/23 职场文书
2020年元旦晚会策划书模板
2019/12/30 职场文书
7个关于Python的经典基础案例
2021/11/07 Python
铁拳制作人赞《铁拳7》老头环Mod:制作精良 但别弄了
2022/04/03 其他游戏