# ES8 ⭐️

# async和await

async和await了两种语法结合可以让异步代码像同步代码一样

# async函数

  • async函数的返回值为promise对象
  • promise对象的结果由async函数执行的返回值决定

# await表达式

  • await必须写在async函数中
  • await右侧的表达式一般为promise对象
  • await返回的是promise成功的值
  • awaitpromise失败了,就会抛出异常,需要通过try...catch捕获处理

# Object.values,keys和Object.entries

  • 1.Object.values()方法返回一个给定对象的所有可枚举属性值的数组 (keys同理,返回的是键名)
var obj = { 0: 'a', 1: 'b', 2: 'c' };
console.log(Object.values(obj)); // ['a', 'b', 'c']

比如找到map中值为1的下标

let map = new Map()
map.set(1, 1)
map.set(2, 3)
let arr = [...map.values()]
arr.forEach((item, index) => {
  if (item == 1) {
    console.log(index)  // 0
  }
})

  • 2.Object.entries()方法返回一个给定对象自身可遍历属性[key,value]的数组 让obj的遍历变得更加丝滑...
const object1 = {
  a: 'somestring',
  b: 42
};
for (const [key, value] of Object.entries(object1)) {
  console.log(`${key}: ${value}`);
}

# Object.getOwnPropertyDescriptors

该方法返回指定对象所有自身属性的描述对象

const obj = Object.create(null, {
  name: {
    value: '41',
    writable: true,
    configurable: true,
    enumerable: true
  }
})
console.log(Object.getOwnPropertyDescriptors(obj));
lastUpdate: 5/13/2022, 6:22:38 PM