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

你可能感兴趣的:(js 遍历对象方法)