ES6 - ECMA2017 - 学习总结

2020-07-26  本文已影响0人  squidbrother
新的概念与方法

概略图:


ECMA2017
基本使用

字符串扩展 padStart、padEnd

padStart 字符串在开头填充多少位,填充内容为什么

'aaa'.padStart(10,'3');  //"3333333aaa"

padEnd 字符串在尾部填充多少位,填充内容为什么

'w3'.padEnd(10,'c');  //"w3cccccccc"

对象扩展 Object.keys、Object.values、Object.entries 、Object.getOwnPropertyDescriptors
针对一维对象

  1. Object.keys 获取JSON的键名集合,返回数组;
Object.keys({"name":"张三","age":18});  // Array [ "name", "age" ]
  1. Object.values 获取JSON的键值集合,返回数组;
Object.values({"name":"张三","age":18});  // Array [ "张三", 18 ]
  1. Object.entries 返回键值对(key-value)的数组集合
Object.entries({"name":"张三","name":李四});   // Array [[ "name", "张三" ],[ "age", 18 ]]
  1. Object.getOwnPropertyDescriptors 用于补救Object.assign不能拷贝setter与getter方法的情况
let source = {
  'mydata':123,     
  set foo(value) {
    this.mydata = value;
  },
  get foo(){
    return this.mydata;  
  }
};

const target2 = {};
Object.defineProperties(target2, Object.getOwnPropertyDescriptors(source));
Object.getOwnPropertyDescriptor(target2, 'foo');

console.log(target2);

允许函数参数尾部使用","号

function fn1(a,b){ return a+b; };  
fn1(1,2,);

async await -- 封装generator与执行器,返回一个Promise

  1. 用于处理异步请求,同步化操作;
  2. await 后面接一个Promise对象实例,下例中jquery为高版本,$.ajax返回的是promise
async function getData(){
  let res1 = await $.ajax({url:'xxx',dataType:'json'});
  let res2 = await $.ajax({url:'xxx',dataType:'json'});
  console.log(res1,res2);
}

同try catch一起使用,使代码更稳定

async function getData(){
  try{
    let res1 = await $.ajax({url:'xxx',dataType:'json'});
  }catch(err){
    console.log(err);
  }  
}
上一篇 下一篇

猜你喜欢

热点阅读