Es6+ 版本特性
- ECMAScript 2015(ES6)新特性
- ES6 新特性:let、const、块级作用域;解构赋值;模板字符串;展开操作符;箭头函数;允许函数的默认值设置参数;symbol 独一无二的值;迭代器;生成器;promise;set 集合;Map集合;对象属性简写;class 类模块化
- ECMAScript 2017(ES8)新特性
- 函数参数列表结尾允许逗号。异步函数:async、await。Object.values()、Object.entries()。String padding:padStart()和padEnd(),填充字符串达到当前长度。Object.getOwnPropertyDescriptors()。ShareArrayBuffer和Atomics对象,用于从共享内存位置读取和写入。
- ECMAScript 2018(ES9)新特性
- 异步迭代:async、await。Promise方法::finally()。无论结果是 Resolved 或者是 Rejected 都会执行。Rest、Spread操作符和对象构建。正则表达式:命名捕获组、反向断言、Unicode 属性转义。模板文字和带标签的模板文字。
- ECMAScript 2019(ES10)新特性
- 数组展平:Array.flat()、Array.flatMap()。数组稳定排序:Array.sort()。把键值对列表转换为一个对象:Object.fromEntries()。去掉字符串两端的空格:String.trimStart()和String.trimEnd()。Symbol 新增属性:description()。动态导入:await import()。JSON 兼容。JSON.stringify()。try{}catch(error){}参数error可以省略。修正:Function.
- ECMAScript 2020(ES11)新特性
- ??操作符?.操作符导出加强:export。动态导入:await import()。元信息:import.meta。等待所有的 Promise 结束:Promise.allSettled()。正则模式:matchAll()。任意精度的整数:BigInt。标准化对象:globalThis。
- ECMAScript 2021(ES12)新特性
- String.prototype.replaceAll():有了这个 API,替换字符不用写正则了。Promise.any():返回第一个 fullfilled 的 promise ,若全部 reject,则返回一个带有失败原因的 AggregateError。新增逻辑赋值操作符:??=、&&=、||=。WeakRefs:使用弱引用对象,该弱引用不会阻止 GC,并且可以在 GC 前使用 WeakRef.prototype.deref()解除该引用。_(下划线)分隔符:分隔数字字面量以方便阅读。I
- ECMAScript 2022(ES13)新特性
- 声明类的字段:类字段可以在类的顶层被定义和初始化私有方法&字段:用#前缀来定义类的私有方法和字段类的静态公共方法和字段:增加了静态公共字段、静态私有方法和静态私有字段的特性ECMScript 类静态初始化块:在类声明/定义期间评估静态初始化代码块,可以访问类的私有字段检测私有字段:可以使用in操作符,如果指定的属性/字段在指定的对象/类中,则返回真,并且也能判断私有字段正则匹配索引:该提案提供了一个新的/dflag,以获得关于输入字符串中每个匹配的开始和索引位置结束的额外信息在所有内置的可索引数