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
网友评论