# JS 对象属性的遍历
1、for ... in
for ... in 循环遍历对象自身和继承的可枚举属性(不含 Symbol 属性)
2、Object.keys(obj)
Object.keys 返回一个数组,包含对象自身的所有可枚举属性(不含 Symbol 属性)
3、Object.getOwnPropertyNames(obj)
Object.getOwnPropertyNames 返回一个数组,包含对象自身的所有属性(不含 Symbol 属性)
4、Object.getOwnPropertySymbols(obj)
Object.getOwnPropertySymbols 返回一个数组,包含自身的 Symbol 属性。
5、Reflect.ownKeys(obj)
Reflect.ownKeys 返回一个数组,包含自身的所有属性,包含 Symbol 和可枚举属性。
# 遍历次序规则
- 首先遍历属性名为数字的属性,按数字排序。
- 其次遍历属性名为字符串的属性,按生成时间排序。
- 最后遍历属性名为 Symbol 的属性,按生成时间排序。