js获取对象的键

当对象属性包含Symbol类型时,Object.keys()和Object.values()无法获取完整键值。使用Reflect.ownKeys()可以确保获取到所有类型的属性,包括Symbol。因此,对于全面获取对象键值,推荐使用Reflect.ownKeys()。
摘要由CSDN通过智能技术生成

获取对象的键值,一般常使用Object.keys(),Object.values(),但是如果对象属性包含Symbol类型的话就拿不到,如下所示

var person = {
        name: '张三',
        age: 20,
        [Symbol('height')]: 170
      }
      for (let i in person){
        console.log(i)//只会打印两次,name和gae
      }
      console.log(Object.keys(person)) // ['name', 'age']
      console.log(Object.getOwnPropertySymbols(person)) //[Symbol(height)] 是打印出来了,但是别的属性没打印出来,只打印了Symbol类型,不符合预期目标
      console.log(Reflect.ownKeys(person)) //['name', 'age', Symbol(height)] 这个全打印出来了

通过以上实践结果,以后要想稳妥一点还是使用Reflect.ownKeys()方法吧

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值