ES6一共有五种方法可以遍历对象的属性。
for ... in
:循环遍历对象自身的和继承的可枚举的属性(不包含Symbol
属性)Object.keys(obj)
: 返回一个数组,包括对象自身的所有可枚举的属性(不包含继承,不包含Symbol
属性)Object.getOwnPropertyNames(obj)
:返回一个数组,包含对象自身的所有属性(含继承、不可枚举属性,不含Symbol
属性)Object.getOwnPropertySymbols(obj)
:返回一个数组,包含对象自身的所有Symbol
属性Reflect.ownKeys(obj)
:返回一个数组,包含对象自身的所有属性,不管是属性名是Symbol
或字符串,也不管是否可枚举
以上的5种方法遍历对象的属性,都遵守同样的属性遍历的次序规则。
- 首先遍历所有属性名为数值的属性,按照数字排序
- 其次遍历所有属性名为字符串的属性,按照生成时间排序
- 最后遍历所有属性名为
Symbol
值的属性,按照生成时间排序
商业转载请联系作者获得授权,非商业转载请注明出处。
原文: http://www.w3cplus.com/javascript/ES6-Objects.html © w3cplus.com