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 相关文章推荐
javascript或asp实现的判断身份证号码是否正确两种验证方法
Nov 26 Javascript
javascript 传统事件模型构造的事件监听器实现代码
May 31 Javascript
Javascript中查找不以XX字符结尾的单词示例代码
Oct 15 Javascript
在linux中使用包管理器安装node.js
Mar 13 Javascript
javascript常用方法总结
May 14 Javascript
跟我学习javascript的函数和函数表达式
Nov 16 Javascript
浅析script标签中的defer与async属性
Nov 30 Javascript
任意Json转成无序列表的方法示例
Dec 09 Javascript
Angular1.x复杂指令实例详解
Mar 01 Javascript
浅谈angularjs中响应回车事件
Apr 24 Javascript
AngularJS实现的输入框字数限制提醒功能示例
Oct 26 Javascript
javascript实现左右缓动动画函数
Nov 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
php设计模式 Bridge (桥接模式)
2011/06/26 PHP
PHP和.net中des加解密的实现方法
2013/02/27 PHP
php生成数组的使用示例 php全组合算法
2014/01/16 PHP
php修改文件上传限制方法汇总
2015/04/07 PHP
PHP实现的一致性Hash算法详解【分布式算法】
2018/03/31 PHP
tp5(thinkPHP5框架)captcha验证码配置及验证操作示例
2019/05/28 PHP
JS实现转动随机数抽奖特效代码
2020/04/16 Javascript
jQuery中slidedown与slideup方法用法示例
2016/09/16 Javascript
Javascript之面向对象--封装
2016/12/02 Javascript
vue服务端渲染的实例代码
2017/08/28 Javascript
seajs模块压缩问题与解决方法实例分析
2017/10/10 Javascript
Vue 自定义动态组件实例详解
2018/03/28 Javascript
vue 登录滑动验证实现代码
2018/08/24 Javascript
vue页面加载时的进度条功能(实例代码)
2020/01/13 Javascript
Python实现的百度站长自动URL提交小工具
2014/06/27 Python
python使用Flask框架获取用户IP地址的方法
2015/03/21 Python
python用户管理系统的实例讲解
2017/12/23 Python
python初学之用户登录的实现过程(实例讲解)
2017/12/23 Python
浅谈Django学习migrate和makemigrations的差别
2018/01/18 Python
python3.5 cv2 获取视频特定帧生成jpg图片
2019/08/28 Python
Python爬虫基于lxml解决数据编码乱码问题
2020/07/31 Python
基于Python制作一副扑克牌过程详解
2020/10/19 Python
猫途鹰英国网站:TripAdvisor英国(旅游社区和旅游评论)
2016/08/30 全球购物
菲律宾优惠券网站:MetroDeal
2019/04/12 全球购物
学习党章思想汇报
2014/01/07 职场文书
董事长秘书职责
2014/01/31 职场文书
初中考试作弊检讨书
2014/02/01 职场文书
成语的广告词
2014/03/19 职场文书
加强作风建设工作总结
2014/10/23 职场文书
美术教师求职信范文
2015/03/20 职场文书
中秋节主题班会
2015/08/14 职场文书
2016年教师节贺卡寄语
2015/12/04 职场文书
经典法律座右铭(50句)
2019/08/15 职场文书
2019年幼儿园家长接送责任书
2019/10/29 职场文书
Python实现智慧校园自动评教全新版
2021/06/18 Python
「约定的梦幻岛」作画发布诺曼生日新绘
2022/03/21 日漫