ES8新特性

1、异步函数 (async function)

A)async关键字位置
• 异步函数声明: async function foo() {}
• 异步函数表达式: const foo = async
• 异步函数定义: let obj= { async foo() {} }
• 异步箭头函数:const foo = async () => {}
B)异步函数总是返回Promise对象

async function test(){
  return '返回prominse对象';
}

test()
.then(res => {   // 异步函数的promise完成状态
  console.log(res)
})
.catch(err => {  // 拒绝状态
  console.log(err)
})

C)通过await关键字处理asyn计算的结果和错误

  • await关键字只允许出现在async异步函数内部
  • 按顺序处理async异步返回的值
  • 可以在调用任何返回promise对象的函数时使用await,意为等待await标记的代码返回promise完成
async function test() {
    const result = await asyncFunc();
    console.log(result);
}

D)Promise.all()

Promise.all可以将多个Promise实例包装成一个新的Promise实例。同时,成功和失败的返回值是不同的,成功的时候返回的是一个结果数组,而失败的时候则返回最先被reject失败状态的值。

  • Promise.all()会在任意一个传入的promise失败是返回失败
let testOne = new Promise((resolve, reject) => {
  resolve('testOne成功')
})
let testTwo = new Promise((resolve, reject) => {
  resolve('testTwo成功')
})
let testThree = Promse.reject('testThree失败')

// 将testOne和testTwo两个promise实例包裹为一个数组传入
// 都成功时返回结果包裹的数组
Promise.all([testOne, testTwo])
.then(result =>{
  console.log(result) // ['testOne成功', 'testTwo成功']
})
.catch(error => {console.log(error)})

// 当其中任意一个失败时,Promise.all()返回失败
Promise.all([testOne, testTwo, testThree])
.then(result =>{console.log(result)})
.catch(error => {
  console.log(error) // 'testThree失败'
})
2、Object.values()
  • 返回一个数组,成员是参数对象自身的(不含继承的)所有可遍历属性的值
Object.values({name: 'sun', age: 24})
// ['name', 24]

// 拓展
Object.keys({name: 'sun', age: 24})
// ['name', 'age']
3、Object.entries()
  • 返回一个数组, 其成员是参数对象自身(不含继承)所有可遍历属性的键值对数组
Object.entries({name: 'sun', age: 24})
// [['name', 'sun'], ['age': 24]]
4、String padding特性

padStart和padEnd分别在指定的字符串开头和末尾添加重复的字符串直到指定长度
• 新的字符串方法
• 允许将空字符串或其他字符串添加到原始字符串的开头或结尾
不会修改原字符串
• 第一个参数:字符串指定到达的长度,第二个参数:添加的字符串
• 如果省略第二个参数,则会使用一个空格字符串

// padStart 在开头添加
let str = 'sun'
str.padStart(10, '123') // 1231231sun

// padEnd 在末尾添加
let strTnd = 'sun'
strTnd.padEnd(10, '123') // sun1231231

// 如果省略第二个参数,则会使用一个空格字符串
let strEmpty = 'sun'
strEmpty.padEnd(6) // 'sun'
5、Object.getOwnPropertyDescriptors()

Object.getOwnPropertyDescriptors()函数用来获取一个对象的所有自身属性的描述符,如果没有任何自身属性,则返回空对象。

let obj = {
  name: 'sun',
  age: 24,
}
Object.getOwnPropertyDescriptors(obj)

// 下面为返回的数据
{
  name: {
    configurable: true,  // 能都使用delete删除
    enumerable: true,  // 可枚举性
    value: "sun",
    writable: true, // 能否修改
  },
  age: {
  	configurable: true,
    enumerable: true,
    value: age,
    writable: true,
  }
}

上面的configurable, enumerable, writable属性请点击这里

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值