js 遍历对象方法

【1】for in(获得可枚举的属性)(不含Symbol属性)

  • 使用 for in 循环遍历对象的属性时,原型链上的所有属性都将被访问
1.png
  • 推荐总是使用 hasOwnProperty 方法, 这将会避免原型对象扩展带来的干扰:


    2.png

【2】Object.keys()(不含Symbol属性)

https://blog.csdn.net/TCF_JingFeng/article/details/89054406

var obj = { } ;

  • Object.keys(obj) 返回一个该对象属性名(不含继承的、可枚举的)组成的字符串数组

  • item 为该对象的属性名

  • obj [ item ] 返回对应的属性值 【必须使用方括号法 因为Object.keys(obj)返回的属性名是字符串类型】

【3】Object.getOwnPropertyNames(obj)(不含Symbol属性)

  • 返回一个该对象属性名(可枚举的&不可枚举的)组成的字符串数组

其他与Object.keys() 基本相同

2/3的区别:https://blog.csdn.net/sinat_36246371/article/details/88064877

【4】Reflect.ownKeys(obj)(含Symbol属性)

  • 返回一个由目标对象自身的属性键组成的数组。它的返回值等同于Object.getOwnPropertyNames(target).concat(Object.getOwnPropertySymbols(target))。

(不管属性名是Symbol或字符串,也不管是否可枚举.)

参考:
https://www.jianshu.com/p/320254a783cc
https://blog.csdn.net/qq_40963664/article/details/83063040

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1.属性的简洁表示法 允许直接写入变量和函数 上面代码表明,ES6 允许在对象之中,直接写变量。这时,属性名为变量...
    雨飞飞雨阅读 1,147评论 0 3
  • 属性的简洁表示法 ES6允许直接写入变量和函数,作为对象的属性和方法。 上面代码表明,ES6允许在对象之中,直接写...
    oWSQo阅读 523评论 0 0
  • 属性的简洁表示法 属性名表达式 方法的 name 属性 Object.is() Object.assign() 属...
    Android_冯星阅读 338评论 0 0
  • 一、属性的简介表示法 ES6允许直接写入变量和函数作为对象的属性和方法。允许在对象中只写属性名,不写属性值。这时,...
    了凡和纤风阅读 344评论 0 0
  • 狮泉天上卷云浓, 戈壁土林盛景冬。 援藏亲亲铭刻心, 潇风咧咧岁月中。 时光翰海匆匆过, 缘定你我冥冥逢。 白雪映...
    老葫芦阅读 497评论 0 0