ES6遍历对象

遍历对象

E S 6 一共有 5 种方法可以遍历对象的属性 。

  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 返回 一个数组,包含对象自身的所有 Symbo l 属性 。
    
  5. Reflect .ownKeys(obj)

    Reflect . ownKeys 返回 一个数组,包含对象自身 的所有属性 , 不管属性名是 Symbol 还 是字符串 , 也不管是否可枚举 。

以上 5 种方法遍历对象的属性时都遵守同样的属性遍历次序规则 。

  • 首先遍历所有属性名为数值的属性 , 按照数字排序 。
  • 其次遍历所有属性名为字符串的属性,按照生成时间排序。
  • 最后遍历所有属性名为 Symbol 值的属性 , 按照生成时间排序。

总结如下:

属性类型for ... inObject.keys(obj)Object . getOwn-Property-Names(obj)Object.getOwn-Property-Symbols(obj)Reflect .ownKeys(obj)
原型链
Symbol
不可枚举
可枚举
普通
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值