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 相关文章推荐
jQuery 判断页面元素是否存在的代码
Aug 14 Javascript
jQuery Tools tooltip使用说明
Jul 14 Javascript
js nextSibling属性和previousSibling属性概述及使用注意
Feb 16 Javascript
jquery表格内容筛选实现思路及代码
Apr 16 Javascript
JS将制定内容复制到剪切板示例代码
Feb 11 Javascript
js实现模拟银行卡账号输入显示效果
Nov 18 Javascript
jQuery实现简洁的导航菜单效果
Nov 23 Javascript
jQuery web 组件 后台日历价格、库存设置的代码
Oct 14 Javascript
Angular.js中控制器之间的传值详解
Apr 24 Javascript
two.js之实现动画效果示例
Nov 06 Javascript
Vue面试题及Vue知识点整理
Oct 07 Javascript
vue使用swiper实现中间大两边小的轮播图效果
Nov 24 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 Header用于页面跳转要注意的几个问题总结
2008/10/03 PHP
解析PHP 5.5 新特性
2013/07/02 PHP
实例讲解yii2.0在php命令行中运行的步骤
2015/12/01 PHP
在laravel中实现将查询的对象转换为多维数组的函数
2019/10/21 PHP
JavaScript中的其他对象
2008/01/16 Javascript
js 异步操作回调函数如何控制执行顺序
2013/12/24 Javascript
Javascript中的回调函数和匿名函数的回调示例介绍
2014/05/12 Javascript
javascript实现rgb颜色转换成16进制格式
2015/07/10 Javascript
关于js二维数组和多维数组的定义声明(详解)
2016/10/02 Javascript
jQuery的中 is(':visible') 解析及用法(必看)
2017/02/12 Javascript
vue+vux实现移动端文件上传样式
2017/07/28 Javascript
Vue单文件组件的如何使用方式介绍
2017/07/28 Javascript
使用Bootrap和Vue实现仿百度搜索功能
2017/10/26 Javascript
详解JavaScript中的函数、对象
2019/04/01 Javascript
layui 动态设置checbox 选中状态的例子
2019/09/02 Javascript
react+antd 递归实现树状目录操作
2020/11/02 Javascript
Python利用多进程将大量数据放入有限内存的教程
2015/04/01 Python
详解 Python 与文件对象共事的实例
2017/09/11 Python
python http基本验证方法
2018/12/26 Python
在Python中调用Ping命令,批量IP的方法
2019/01/26 Python
django模板加载静态文件的方法步骤
2019/03/01 Python
python绘制地震散点图
2019/06/18 Python
欧舒丹比利时官网:L’OCCITANE比利时
2017/04/25 全球购物
医院护士求职自荐信格式
2013/09/21 职场文书
统计员岗位职责
2013/11/14 职场文书
会计专业毕业生求职信分享
2014/01/03 职场文书
会计自我鉴定
2014/02/04 职场文书
五年级科学教学反思
2014/02/05 职场文书
大学生在校学习的自我评价
2014/02/18 职场文书
经典的毕业生自荐信范文
2014/04/14 职场文书
培训协议书范本
2014/04/22 职场文书
英语课前三分钟演讲稿(6篇)
2014/09/13 职场文书
护士个人年终总结
2015/02/13 职场文书
2016年寒假见闻
2015/10/10 职场文书
团干部培训班心得体会
2016/01/06 职场文书
用python删除文件夹中的重复图片(图片去重)
2021/05/12 Python