ES8
async与await,这两种语法结合可以让异步代码像同步代码一样
async
1. 返回值为 promise对象
因此可以调用then方法
2. promise对象的结果由async函数执行的返回值决定
返回为undefined或者数值,为返回成功。因此可以调用then
当出现 抛异常为返回失败。throw new Error('异常')
也可以返回一个 new Promise对象
await
1. await必须写在 async的函数中
2. await 右侧的表达式必须是 promise对象
3. await 返回的是 promise成功的值
4. await的 promise失败的话,会抛出异常,因此需要通过try...catch捕获
对象方法的扩展
1. Object.keys(对象名)
获取对象的所有键,返回数组
2. Object.values(对象名)
获取对象的所有值,返回为数组
3. Object.entries(对象名)
一个键值对为一个数组,所有键值对为一个大的数组,方便于创建map
4. Object.getOwnPropertyDescriptors
返回指定对象所有自身属性的描述对象
ES9
rest参数
ES6的rest只使用于数组,ES9的rest可针对对象了
ES10
对象的扩展方法
Object.fromEntries(二维数组)
将二维数组转换成对象的形式,一个内部数组等于一个键值对,只取前下标的前两位,第一位为键,第二位为值
字符串的扩展方法
1. str.trimStart()
清除字符串左边的空格
等于 str.trimLeft()
2. str.trimEnd()
清除字符串右边的空格
等于 str.trimRight()
数组的扩展方法
1. arr.flat(数)
将高维数组转换成低纬数组,默认为1寓意二维转1维度,2为三维以下转1维
2. arr.flatMap()
将进行过map方法返回的数组(二维),转换为一维的形式
Symbol的扩展
Symbol.prototype.description
获取Symbol描述文字
ES11
私有属性
类中使用#开头的变量是私有属性
Promise的方法
1. Promise.allSettled([promise的元素])
存储了promise属性的值,也包括失败的
2. Promise.all([promise的元素])
失败会抛异常
可选链操作符
.?的格式
const dbHost = config?.db?.host;