ECMAScript(简称ES)是JavaScript的标准,它的发展史经历了多个版本的迭代,以下是主要里程碑:
-
ES1 (1997年6月):首个正式发布的ECMAScript标准,基于当时的JavaScript(由Netscape公司开发)和JScript(由Microsoft公司开发)制定。
-
ES2 (1998年6月):对ES1进行了一些小的修订和澄清,但未引入重大新功能。
-
ES3 (1999年12月):增加了大量的新功能和改进,例如正则表达式、try/catch异常处理、new Function()构造函数等,奠定了JavaScript后续发展的基础。
-
ES4提案(未采纳):2007年提出了一版较大幅度的更新提议,但由于各方意见不统一,未能成为正式标准。
-
ES5 (2009年12月):加入了严格模式、JSON.stringify和JSON.parse、getters/setters、数组方法扩展(如forEach、map、reduce等)、不可变对象(Object.freeze)、函数.bind方法等重要特性。
-
ES6/ES2015 (2015年6月):带来了巨大的革新,包括箭头函数、模板字符串、类、模块、解构赋值、for...of循环、let/const块级作用域、Promise、Map/Set、Proxy和Reflect等。
-
ES7/ES2016 (2016年6月) :引入了
Array.prototype.includes
、Exponentiation Operator (**)
、async/await
等特性。 -
ES2017 (2017年6月) :增添了
Object.values/Object.entries
、Trailing Commas in Function Parameter Lists and Calls
、Async Iterators and Async Generators
等。 -
ES2018 (2018年6月) :新增了
Rest/Spread Properties
、Asynchronous Iteration
、Object.getOwnPropertyDescriptors
、RegExp Unicode Property Escapes
和Promise.prototype.finally
等特性。 -
ES2019 (2019年6月) :包含了
Optional catch binding
、Symbol.prototype.description
、well-formed JSON.stringify
、Array.prototype.flat
和Array.prototype.flatMap
等新特性。 -
ES2020 (2020年6月) :增加了
BigInt
、globalThis
、Promise.allSettled
、String.prototype.matchAll
和Dynamic Import
等特性。 -
ES2021 (2021年6月) :包含了
Logical Assignment Operators
、String.prototype.replaceAll
、WeakRefs
、import.meta
和Numeric Separators
等特性。 -
ES2022 (2022年6月) :新增了
Class Field Declarations
、Top-Level Await
、Promise.any
、String.prototype.replaceAll
以及Global This
的规范化等特性。
随着每年的推进,ECMAScript都在逐步完善和加强JavaScript语言的能力,以适应现代Web和软件开发的需求。