ES全称ECMAScript,ECMAScript是ECMA制定的标准化脚本语言
ES6新特性(2015)
ES6的特性比较多,在 ES5 发布近 6 年(2009-11 至 2015-6)之后才将其标准化。两个发布版本之间时间跨度很大,所以ES6中的特性比较多。在这里列举几个常用的:
-
类
-
模块化
-
箭头函数
-
函数参数默认值
-
模板字符串
-
解构赋值
-
延展操作符
-
对象属性简写
-
Promise
-
Let与Const
ES7新特性(2016)
ES2016添加了两个小的特性来说明标准化过程:
-
数组includes()方法,用来判断一个数组是否包含一个指定的值,根据情况,如果包含则返回true,否则返回false。
-
a ** b指数运算符,它与 Math.pow(a, b)相同
ES8新特性(2017)
-
async/await
-
Object.values()
-
Object.entries()
-
String padding:
padStart()
和padEnd()
,填充字符串达到当前长度 -
函数参数列表结尾允许逗号
-
Object.getOwnPropertyDescriptors()
-
ShareArrayBuffer
和Atomics
对象,用于从共享内存位置读取和写入
ES9新特性(2018)
-
异步迭代
-
Promise.finally()
-
Rest/Spread 属性
-
正则表达式命名捕获组(Regular Expression Named Capture Groups)
-
正则表达式反向断言(lookbehind)
-
正则表达式dotAll模式
-
正则表达式 Unicode 转义
-
非转义序列的模板字符串
ES10新特性(2019)
-
行分隔符(U + 2028)和段分隔符(U + 2029)符号现在允许在字符串文字中,与JSON匹配
-
更加友好的 JSON.stringify
-
新增了Array的
flat()
方法和flatMap()
方法 -
新增了String的
trimStart()
方法和trimEnd()
方法 -
Object.fromEntries()
-
Symbol.prototype.description
-
String.prototype.matchAll
-
Function.prototype.toString()
现在返回精确字符,包括空格和注释 -
简化
try {} catch {}
,修改catch
绑定 -
新的基本数据类型
BigInt
-
globalThis
-
import()
-
Legacy RegEx
-
私有的实例方法和访问器