1.ES8-ES8对象方法扩展 3个
返回的是数组
返回对象属性的描述对象
2.ES9-ES9扩展运算符与rest参数
3.ES9-ES9正则扩展-命名捕获分组
使用下标,命名捕获属性
使用命名去提取
4.ES9-ES9正则扩展-反向断言
根据目标文字的前面或后面唯一性做识别
5.ES9-ES9正则扩展-dotAll模式
对html5的内容做分析提取为对象数组
6.ES10-对象扩展方法Object.fromEntries
二维数组、map
二维数组
Object.entries将一个对象转化为二维数组
Object.fromEntries将二维数组转化为对象
7.ES10-字符串方法扩展-trimStart-trimEnd
8.ES10-数组方法扩展-flat与flatMap
flat将多维数组转为低维数组
flatMap 将mapDe值的多维数组转为低维数组
相当于两个操作的结合
9.ES10-Symbol.prototype.description
获取sumbol 的描述属性
10.ES11-私有属性
#属性名
私有属性属于类,不属于实例对象,在类的外部不能访问,在类的内部新建方法,访问私有属性
11.ES11- Promise.allSettled方法
一般他们两个都用来做批量异步任务的场景,如果每一个异步任务都需要一个结果使用allSettled,如果需要每一个异步任务都成功才能继续往下执行代码,则使用allSet。
allSettled 参数时数组promise类型参数
返回结果是始终是成功的,返回的值是每一个异步任务的结果 数组。每个数组元素是一个对象(包含当前promise对象的的返回状态和返回的值)
allSet 参数时数组promise类型参数
返回结果是根据每一个promise的返回结果而定的。
如果每一个promise都成功,才成功,返回的值是每一个异步任务的结果 数组。
如果有一个失败,返回的是失败的,返回的值是失败的promise返回的值
12.ES11-String.prototype.matchAll方法
得到正则批量返回数据
数据的批量提取(爬虫类项目)
13.ES11-可选链操作符 ?.
对象类型的参数,多层级的
免去了做层层判断
14.ES11-动态import
懒加载 按需加载
返回的是一个promise对象
15.ES11-BigInt类型 大整数
用于大数值运算
BigInt(1.2)不行
BigInt(1)不能直接 +1 普通类型。要是BigInt类型的相加。
最大安全整数
16.ES11-绝对全局对象globalThis
不区分执行环境 windows nodejs 啊各种环境
始终指向全局对象,需要针对全局对象做操作时使用