zoukankan      html  css  js  c++  java
  • 对象属性的遍历

    ES6中总共有5种对象属性遍历的方法。

    for…in
    for...in循环遍历对象自身的和继承的可枚举属性(不含Symbol属性)。

    Object.keys(obj)
    Object.keys返回一个数组,包括对象自身的(不含继承的)所有可枚举属性(不含Symbol属性)。

    Object.getOwnPropertyNames(obj)
    Object.getWonPropertyNames返回一个数组,包含对象自身的所有属性(不含Symbol属性,但包括不可枚举属性)。

    Object.getOwnPropertySymbols(obj)
    Object.getOwnPropertySymbols返回一个数组,包含对象自身所有的Symbol属性。

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

    上面的5种对象属性遍历的方法,都遵守相同的属性遍历次序规则。
    - 首先,遍历所有属性名为数值的属性,按照数字排序;
    - 其次,遍历所有属性名为字符串的属性,按照生成时间排序;
    - 最后,遍历所有属性名为Symbol值的属性,按照生成时间排序。

    Reflect.ownKeys({[Symbol()]: 0, b: 0, 10: 0, 2: 0, a: 0});
    // ["2", "10", "b", "a", Symbol()]

    上面代码中,Reflect.ownKeys方法返回一个数组,包含了参数对象的所有属性。这个数组的属性次序是:先是数值属性210,其次是字符串属性ba,最后是Symbol属性。

  • 相关阅读:
    通过elasticsearch对日志进行搜索热词统计
    登陆获取shell时的配置文件加载过程
    linux共享库加载
    linux安全相关
    ELK常用API使用方法
    linux bash缓存
    redis主从架构及redis集群
    排查电脑的网络问题
    Logstash添加Protobuf解析插件
    Macaca上手体验
  • 原文地址:https://www.cnblogs.com/pwindy/p/12660870.html
Copyright © 2011-2022 走看看