ECMAScript 2017

在这里插入图片描述

前言
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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值