JS对象属性的检测与获取操作实例分析

 更新时间:2020年03月17日 12:28:43   作者:wangliang_001  
这篇文章主要介绍了JS对象属性的检测与获取操作,结合实例形式分析了JS针对ES5、ES6实现对象属性的检测与获取常见操作技巧,需要的朋友可以参考下

本文实例讲述了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.jb51.net/code/HtmlJsRun测试上述代码运行效果。

更多关于JavaScript相关内容感兴趣的读者可查看本站专题:《javascript面向对象入门教程》、《JavaScript错误与调试技巧总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript遍历算法与技巧总结》及《JavaScript数学运算用法总结

希望本文所述对大家JavaScript程序设计有所帮助。

相关文章

  • JS正则表达式修饰符中multiline(/m)用法分析

    JS正则表达式修饰符中multiline(/m)用法分析

    这篇文章主要介绍了JS正则表达式修饰符中multiline(/m)用法,结合实例形式分析了JS正则中多行模式multiline的功能、使用方法与相关注意事项,需要的朋友可以参考下
    2016-12-12
  • 自定义的一个简单时尚js下拉选择框

    自定义的一个简单时尚js下拉选择框

    下拉选择框,是我们在网页中经常使用到的,在本文为大家详细介绍下使用js使用的下拉选择框
    2013-11-11
  • 解决window.history.back()返回上一页有时候需要点击多次问题

    解决window.history.back()返回上一页有时候需要点击多次问题

    这篇文章主要介绍了解决window.history.back()返回上一页有时候需要点击多次问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-03-03
  • 如何用JS有效的压缩图片

    如何用JS有效的压缩图片

    JavaScript操作压缩图片原理不难,已有成熟 API,然而在实际输出压缩后结果却总有意外,有些图片竟会越压缩越大,加之终端(手机)类型众多,有些手机压缩图片甚至变黑。本文将一步一步解决此类问题
    2021-05-05
  • javascript操作数组详解

    javascript操作数组详解

    这篇文章主要详细介绍了javascript操作数组的方法以及示例,需要的朋友可以参考下
    2014-12-12
  • BootStrop前端框架入门教程详解

    BootStrop前端框架入门教程详解

    Bootstrap 是基于 HTML、CSS、JAVASCRIPT 的,它简洁灵活,使得 Web 开发更加快捷。这篇文章主要介绍了BootStrop前端框架入门教程详,需要的朋友可以参考下
    2016-12-12
  • JS基于FileSystemObject创建一个指定路径的TXT文本文件

    JS基于FileSystemObject创建一个指定路径的TXT文本文件

    这篇文章主要介绍了JS基于FileSystemObject创建一个指定路径的TXT文本文件,涉及javascript使用ActiveXObject控件中FileSystemObject对象模型的基本技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-08-08
  • Javascript将数字转化成为货币格式字符串

    Javascript将数字转化成为货币格式字符串

    这篇文章主要介绍Javascript将数字转化成为货币格式字符串的方法,通俗易懂,需要的朋友可以参考下。
    2016-06-06
  • JS中的oninput和onchange事件的区别及如何正确使用

    JS中的oninput和onchange事件的区别及如何正确使用

    在JavaScript中,oninput和onchange事件是用于处理用户输入的常见事件,本文将介绍oninput和onchange事件的区别,以及如何在实际开发中正确使用它们,感兴趣的朋友跟随小编一起看看吧
    2023-10-10
  • js 内存释放问题

    js 内存释放问题

    这里之所以使用setTimeout(),因为可以彻底回收当前所有对象,防止变量之间的引用导致释放失败,可以当作一个保障措施,按照道理来说,这里不会执行了。
    2010-04-04

最新评论