ECMAScript(ES) 是 Javascript 語言規(guī)范,由歐洲計算機制造協(xié)會(ECMA - European Computer Manufacturers Association) 制定。
版本命名規(guī)則:
- ES5 代表第 5 個 ES 版本估盘,從 ES2015 開始直接按年份作為版本號
- ES.Next 不代表任何的具體版本徐块,僅用來指代下一個 ECMAScript 版本
ES1-ES4
傳統(tǒng)版本
ES5 (2009)
- 增加
strict mode
- JSON 靜態(tài)方法
JSON.parse(), JSON.stringify()
String.trim()
- 擴充 Arrary 方法
isArray(), forEach(), map(), filter(), reduce(), reduceRight(), every(), some(), indexOf(), lastIndexOf()
Date.now()
- Getter/Setter 屬性
- 定義對象或數(shù)組時允許最后一個元素結(jié)尾帶逗號
ES2015 (ES6)
- 聲明變量 let吠撮、常量 const
- 箭頭函數(shù)
const sum = (a, b) => a + b
- 函數(shù)默認(rèn)參數(shù)
const sum = (a, b = 1) => { return a + b; }
- class 聲明類
class Person { constructor(name) { this.name = name } }
- 擴充 Arrary 方法
find(), findIndex()
- 模板字符串
`Hello ${name}`
- 數(shù)組和對象
const {name, age} = person;
const [a, b] = arr;
- 模塊 import/export
export default class Person { ... }
import Person from './person'
- 異步函數(shù)返回對象 Promise
return new Promise((resolve, reject) => { resolve(true) })
- 展開操作符與其余參數(shù)
const [a, ...rest] = arr;
const f = (..args) => {}
ES2016 (ES7)
- 指數(shù)操作符
**
- 擴充 Arrary 方法
Array.includes()
ES2017 (ES8)
- 異步函數(shù)
async/await
- 共享內(nèi)存與原子操作
- 擴充 String 填充方法
padStart(), padEnd()
- 擴充 Object 方法
values(), entries(), getOwnPropertyDescriptors()
ES2018 (ES9)
- 異步迭代
- Rest/Spread 屬性
const {name, ...rest} = person;
- 擴充正則方法 :
- 命名捕獲組
- Unicode Property Escapes
- Lookbehind Assertions
-
/s
(dotAll) flag