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的密码强度验证代码
Mar 01 Javascript
javascript 操作select下拉列表框的一点小经验
Mar 20 Javascript
js对象关系图 方便dom操作
Mar 18 Javascript
jquery选择器的选择使用及性能介绍
Jan 16 Javascript
javaScript面向对象继承方法经典实现
Aug 20 Javascript
jquery实现手风琴效果实例代码
Nov 15 Javascript
jQuery简易图片放大特效示例代码
Jun 09 Javascript
模仿password输入框的实现代码
Jun 07 Javascript
select隐藏选中值对应的id,显示其它id的简单实现方法
Aug 25 Javascript
Vue实现自带的过滤器实例
Mar 09 Javascript
Vue.js组件间的循环引用方法示例
Dec 27 Javascript
利用 Chrome Dev Tools 进行页面性能分析的步骤说明(前端性能优化)
Feb 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
PHPwind整合最土系统用户同步登录实现方法
2010/12/08 PHP
Mac下php 5升级到php 7的步骤详解
2017/04/26 PHP
不要在cookie中使用特殊字符的原因分析
2010/07/13 Javascript
关于js日期转化为毫秒数“节省20%的效率和和节省9个字符“问题
2012/03/01 Javascript
ie下jquery.getJSON的缓存问题的处理方法
2013/03/29 Javascript
javascript右下角弹层及自动隐藏(自己编写)
2013/11/20 Javascript
编写自己的jQuery提示框(Tip)插件
2015/02/05 Javascript
跟我学习javascript的浮点数精度
2015/11/16 Javascript
Jquery中request和request.form和request.querystring的区别
2015/11/26 Javascript
js仿淘宝和百度文库的评分功能
2016/05/15 Javascript
JS实现列表页面隔行变色效果
2017/03/25 Javascript
原生javascript实现分页效果
2017/04/21 Javascript
vue脚手架vue-cli的学习使用教程
2017/06/06 Javascript
简谈创建React Component的几种方式
2019/06/15 Javascript
如何使用Node.js爬取任意网页资源并输出PDF文件到本地
2019/06/17 Javascript
jquery多级树形下拉菜单的实例代码
2019/07/09 jQuery
微信小程序里引入SVG矢量图标的方法
2019/09/20 Javascript
[49:11]完美世界DOTA2联赛PWL S3 INK ICE vs DLG 第二场 12.20
2020/12/23 DOTA
浅谈django开发者模式中的autoreload是如何实现的
2017/08/18 Python
Python import与from import使用及区别介绍
2018/09/06 Python
如何在python中实现随机选择
2019/11/02 Python
tensorflow 变长序列存储实例
2020/01/20 Python
python实现udp传输图片功能
2020/03/20 Python
html5新增的定时器requestAnimationFrame实现进度条功能
2018/12/13 HTML / CSS
HTML5的结构和语义(1):前言
2008/10/17 HTML / CSS
网络专业学生个人的自我评价
2013/12/16 职场文书
会计专业大学生职业生涯规划范文
2014/01/11 职场文书
即将毕业大学生自荐信
2014/01/24 职场文书
初中英语教学反思
2014/01/25 职场文书
放飞蜻蜓反思
2014/02/05 职场文书
学生手册评语
2014/05/05 职场文书
李开复演讲稿
2014/05/24 职场文书
婚宴领导致辞
2015/07/28 职场文书
优秀党员主要事迹范文
2015/11/05 职场文书
浅谈由position属性引申的css进阶讨论
2021/05/25 HTML / CSS
python如何为list实现find方法
2022/05/30 Python