新的概念与方法
概略图:
ECMA2017
基本使用
字符串扩展 padStart、padEnd
padStart 字符串在开头填充多少位,填充内容为什么
'aaa'.padStart(10,'3'); //"3333333aaa"
padEnd 字符串在尾部填充多少位,填充内容为什么
'w3'.padEnd(10,'c'); //"w3cccccccc"
对象扩展 Object.keys、Object.values、Object.entries 、Object.getOwnPropertyDescriptors
针对一维对象
- Object.keys 获取JSON的键名集合,返回数组;
Object.keys({"name":"张三","age":18}); // Array [ "name", "age" ]
- Object.values 获取JSON的键值集合,返回数组;
Object.values({"name":"张三","age":18}); // Array [ "张三", 18 ]
- Object.entries 返回键值对(key-value)的数组集合
Object.entries({"name":"张三","name":李四}); // Array [[ "name", "张三" ],[ "age", 18 ]]
- 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
- 用于处理异步请求,同步化操作;
- 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);
}
}
网友评论