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 setTimeout()传递函数参数(包括传递对象参数)
Apr 07 Javascript
jquery.validate分组验证代码
Mar 17 Javascript
Javascript base64编码实现代码
Dec 02 Javascript
文档对象模型DOM通俗讲解
Nov 01 Javascript
JavaScript模拟重力状态下抛物运动的方法
Mar 03 Javascript
JavaScript实现图片自动加载的瀑布流效果
Apr 11 Javascript
javaScript事件机制兼容【详细整理】
Jul 23 Javascript
JS实现简单表格排序操作示例
Oct 07 Javascript
angular4实现tab栏切换的方法示例
Oct 21 Javascript
js replace 全局替换的操作方法
Jun 12 Javascript
vue实现文件上传功能
Aug 13 Javascript
JS实现简易留言板增删功能
Feb 08 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中简单的对称加密算法实现
2017/01/05 PHP
Yii2中多表关联查询hasOne hasMany的方法
2017/02/15 PHP
javascript实现动态CSS换肤技术的脚本
2007/06/29 Javascript
JavaScript DOM 学习第五章 表单简介
2010/02/19 Javascript
JSON JQUERY模板实现说明
2010/07/03 Javascript
简略的前端架构心得&&基于editor为例子的编码小技巧
2010/11/25 Javascript
js过滤HTML标签以及空格的思路及代码
2013/05/24 Javascript
jQuery之选择组件的深入解析
2013/06/19 Javascript
Javascript 实现的数独解题算法网页实例
2013/10/15 Javascript
Jquery插件easyUi表单验证提交(示例代码)
2013/12/30 Javascript
JavaScript获取当前日期是星期几的方法
2015/04/06 Javascript
jQuery实现Email邮箱地址自动补全功能代码
2015/11/03 Javascript
java中String类型变量的赋值问题介绍
2016/03/23 Javascript
JS中位置与大小的获取方法
2016/11/22 Javascript
JavaScript自定义函数实现查找两个字符串最长公共子串的方法
2016/11/24 Javascript
vue实现图书管理demo详解
2017/10/17 Javascript
微信小程序实现选项卡效果
2018/11/06 Javascript
vue代码分割的实现(codesplit)
2018/11/13 Javascript
详解vue中this.$emit()的返回值是什么
2019/04/07 Javascript
vuex存储复杂参数(如对象数组等)刷新数据丢失的解决方法
2019/11/05 Javascript
Vue路由管理器Vue-router的使用方法详解
2020/02/05 Javascript
[01:23]2019完美世界全国高校联赛(春季赛)合肥全国总决赛
2019/06/10 DOTA
python实现查询苹果手机维修进度
2015/03/16 Python
对python中的 os.mkdir和os.mkdirs详解
2018/10/16 Python
Python hashlib加密模块常用方法解析
2019/12/18 Python
pytorch 彩色图像转灰度图像实例
2020/01/13 Python
HTML5中5个简单实用的API(第二篇,含全屏、可见性、拍照、预加载、电池状态)
2014/05/07 HTML / CSS
幼儿园家长会欢迎词
2014/01/09 职场文书
最新奶茶店创业计划书
2014/01/25 职场文书
党员批评与自我批评
2014/02/12 职场文书
中学生励志演讲稿
2014/04/26 职场文书
党性教育心得体会
2014/09/03 职场文书
离职感谢信
2015/01/21 职场文书
异地恋情人节寄语
2015/02/28 职场文书
投诉书格式范本
2015/07/02 职场文书
js不常见操作运算符总结
2021/11/20 Javascript