ECMAScript 2017

    科技2022-07-10  182

    前言
    ECMAScript2017发布于2017年的6月份,本文主要是介绍ECMAScript 2017 新增的语言特性, 主要有以下三个方面的Object ,String ,function
    1.Object. values
    let obj2 = { name: "loki", age: 20, sex: "female" }; console.log(Object.values(obj2)); //返回包含值的数组 result =>[ 'loki', 20, 'female' ]
    2.Object. entries
    以数组形式返回对象中的键值对 let obj2 = { name: "loki", age: 20, sex: "female" }; log(Object.entries(obj2)); //返回包含键值对的数组 result =>[ [ 'name', 'loki' ], [ 'age', 20 ], [ 'sex', 'female' ] ] 这样的话可以直接通过 forof方式直接遍历对象了 for (const [key, value] of Object.entries(obj2)) { log(key, value); } result => name loki result => age 20 Map(3) { 'name' => 'loki', 'age' => 20, 'sex' => 'female' }sex female 由于map就是需要这种格式的数据我们可以把对象直接转换成map log(new Map(Object.entries(obj2))); result => Map(3) { 'name' => 'loki', 'age' => 20, 'sex' => 'female' }
    3.Object.getOwnProperyDescriptors
    获取对象的完整描述信息,演示如下 const obj = { firstName: "handsome", lastName: "Wang", age: 23, get name() { return `${this.firstName} ${this.lastName}`; }, }; // 直接复制上面的对象, getter属性会变成普通属性复制过来 const obj2 = Object.assign({}, obj); obj2.firstName = "snoopy"; console.log(obj2.name); // Bruski Wang :这里已经变成普通属性, 还记录着上一个对象的值 // 应该使用 Object.getOwnPropertyDescriptors 拿到属性完整描述, 再 defineProperties const descriptors = Object.getOwnPropertyDescriptors(obj); console.log(descriptors); const obj3 = Object.defineProperties({}, descriptors); obj3.firstName = "Loki"; console.log(obj3.name); // Loki Wang
    String.property.padStart / String.property.padEnd
    参数 (count, str) 用指定的字符填充到指定字符数,常用于输出格式化 const books = { html: 5, css: 16, javascript: 128, }; for (const [name, count] of Object.entries(books)) { const padName = name.padEnd(16, "-"); // 尾部填充中划线 const padCount = count.toString().padStart(3, 0); // 补充前导0 // => html------------ 005 // => css------------- 016 // => javascript------ 128 console.log(padName, padCount); }
    允许函数最后一个参数带逗号
    减少 git diff,便于调整参数顺序 const add = (params1, params2, ) => { return params1 + params2 }; log(add(10, 20)) //result => 30

    谢谢观看,如有不足,敬请指教

    Processed: 0.028, SQL: 8