ECMAScript(ES) 是 Javascript 语言规范,由欧洲计算机制造协会(ECMA - European Computer Manufacturers Association) 制定。
版本命名规则:
- ES5 代表第 5 个 ES 版本,从 ES2015 开始直接按年份作为版本号
- ES.Next 不代表任何的具体版本,仅用来指代下一个 ECMAScript 版本
ES1-ES4
传统版本
ES5 (2009)
- 增加
strict mode - JSON 静态方法
JSON.parse(), JSON.stringify() String.trim()- 扩充 Arrary 方法
isArray(), forEach(), map(), filter(), reduce(), reduceRight(), every(), some(), indexOf(), lastIndexOf() Date.now()- Getter/Setter 属性
- 定义对象或数组时允许最后一个元素结尾带逗号
ES2015 (ES6)
- 声明变量 let、常量 const
- 箭头函数
const sum = (a, b) => a + b - 函数默认参数
const sum = (a, b = 1) => { return a + b; } - class 声明类
class Person { constructor(name) { this.name = name } } - 扩充 Arrary 方法
find(), findIndex() - 模板字符串
`Hello ${name}` - 数组和对象
const {name, age} = person;const [a, b] = arr; - 模块 import/export
export default class Person { ... }import Person from './person' - 异步函数返回对象 Promise
return new Promise((resolve, reject) => { resolve(true) }) - 展开操作符与其余参数
const [a, ...rest] = arr;const f = (..args) => {}
ES2016 (ES7)
- 指数操作符
** - 扩充 Arrary 方法
Array.includes()
ES2017 (ES8)
- 异步函数
async/await - 共享内存与原子操作
- 扩充 String 填充方法
padStart(), padEnd() - 扩充 Object 方法
values(), entries(), getOwnPropertyDescriptors()
ES2018 (ES9)
- 异步迭代
- Rest/Spread 属性
const {name, ...rest} = person; - 扩充正则方法 :
- 命名捕获组
- Unicode Property Escapes
- Lookbehind Assertions
-
/s(dotAll) flag










网友评论