遍历对象的方法
遍历对象相当于遍历对象的属性,所以需要明白这些属性自身的特点;
一,对象的属性分类:
- 原型属性
- 对象自身可枚举属性
- 对象自身不可枚举属性
- Symbol属性
设置相应属性

二,遍历对象的方法
判断是否可枚举:Object.prototype.property IsEnumeralbe()
1,for in
:以任意顺序迭代一个对象的除Symbol以外的可枚举属性,包括继承的可枚举属性。
如下图所示,只能遍历打印出 原型属性和自身可枚举属性,返回字符串;

2,object.keys()
:返回一个由一个给定对象的自身可枚举属性组成的数组,数组中属性名的排列顺序和正常循环遍历该对象时返回的顺序一致 。
如下图所示,只能遍历自身可枚举属性,返回一个属性名数组;

3,Object.getOwnPropertyNames()
:返回一个由指定对象的所有自身属性的属性名(包括不可枚举属性但不包括Symbol值作为名称的属性)组成的数组。
如下图所示,只能遍历自身属性(不论是否可枚举),返回一个属性名数组;

4,Object.getOwnPropertySymbols()
:返回一个给定对象自身的所有 Symbol 属性的数组。
如下图所示,只打印 Symbol属性,返回一个属性名数组;

5,Reflect.ownKeys()
:返回一个由目标对象本人的所有属性组成的对象的静态方法 。
如下图所示,打印 自身的所有属性(没有原型属性),返回一个属性名数组;


浙公网安备 33010602011771号