ES6 版本
ES6 版本
ECMA-262 已发布十个版本。 2019年6月完成第10版的工作,ECMA-262的十个版本如下:
版本 |
发布日期 |
姓名 |
对上一版的改动 |
编辑 |
1. |
1997 年 6 月 |
|
第一版 |
Guy L. Steele Jr. |
2. |
1998 年 6 月 |
|
为使规范与 ISO/IEC 16262 国际标准完全一致而进行的编辑更改。 |
迈克考利肖 |
3. |
1999 年 12 月 |
|
添加正则表达式、新的控制语句、更好的字符串处理、更严格的错误定义、数字输出格式、try/catch 异常处理和其他增强功能。 |
迈克考利肖 |
4. |
废弃 |
|
由于语言复杂性方面的政治分歧,第四版被放弃了。为该版本提议的几个功能已完全删除。 |
|
5. |
2009 年 12 月 |
|
添加"严格模式",这是一个子集,旨在通过错误检查提供更多信息并避免容易出错的构造。它澄清了第 3 版规范中的一些歧义,并且还适应了与该规范始终不同的实际实现的行为。添加了一些新功能,例如 getter 和 setter,对 JSON 的库支持。 |
普拉塔普·拉克什曼、艾伦·维尔夫斯-布洛克 |
5.1 |
2011 年 6 月 |
|
ECMAScript 标准 5.1 版与 ISO/IEC 16262:2011 第三版完全一致。 |
普拉塔普·拉克什曼、艾伦·维尔夫斯-布洛克 |
6. |
2015 年 6 月 |
ECMAScript 2015(ES 2015) |
添加用于编写应用程序的新语法,包括类声明、ES6 模块,但以与 ECMAScript5 严格模式相同的术语定义它们。本次更新的其他功能包括迭代器、箭头函数表达式、Python 风格的生成器、二进制数据、类型化数组、新集合等。 |
Allen Wirfs-Brock |
7. |
2016 年 6 月 |
ECMAScript 2016(ES 2016) |
主要的标准语言包括诸如变量的破坏模式、函数和变量的块作用域、适当的尾调用、数字的取幂运算符等功能。 |
布莱恩特里森 |
8. |
2017 年 6 月 |
ECMAScript 2017(ES 2017) |
它包括 async/await 结构,它通过使用生成器和承诺来工作。它还包含并发性和原子性的特性,以及与 promise 的语法集成(async/await)。 |
布莱恩特里森 |
9. |
2018 年 6 月 |
ECMAScript 2018(ES 2018) |
它的新功能包括变量的休息/扩展运算符、异步迭代。 |
布莱恩特里森 |
10. |
2019 年 6 月 |
ECMAScript 2019(ES 2019) |
新增功能包括 Array.prototype.flatMap、Array.prototype.flat,以及对 Array.sort 和 Object.fromEntries 的更改。 |
布莱恩·特里森、布拉德利·法里亚斯、乔丹·哈班德 |
2004 年 6 月,ECMA 国际发布了 ECMA-357 标准,用于定义 ECMAScript 的扩展,称为 ECMAScript for XML。
让我们尝试详细说明 ECMAScript 的版本。
第 4th 版(已弃用)
ECMA-262 的第四版(ECMAScript 4 或 ES4)是自 1999 年第三版发布以来 ECMAScript 的首次更新。该规范的目标是在 2008 年 10 月完成。
到 2008 年 8 月,第四版 ECMAScript 已缩减为代号为 ECMAScript Harmony 的项目。 当时讨论的和谐功能包括类、析构赋值、模块系统、可选类型注释和静态类型等。
此外,添加新功能,一些 ES3 错误计划在第 4 版中修复。这些修复和其他错误,以及对 JSON 编码/解码的支持,都包含在 ECMAScript 第五版规范中。
在 2007 年末, Eich(后来成为 Mozilla 基金会的 CTO) 和 Chris Wilson(微软的 Internet Explorer 平台架构师)之间的辩论strong>在许多博客上公开。
由于语言复杂性方面的政治差异,第四版被放弃。为该版本提议的几个功能已完全删除。
第 5th 版
雅虎、微软、谷歌和其他反对者第四版成立了他们的小组委员会,用于设计一个名为 ECMAScript 3.1 的 ECMAScript 3 的不那么雄心勃勃的更新。此版本将重点关注库和安全更新,并重点强调兼容性。经过公开辩论,ECMAScript 3.1 和 ECMAScript 4 团队达成妥协。
一段时间后,Brendan Eich 宣布 ECMA TC39 将专注于 ECMAScript 的工作3.1(后来的ECMAScript,第五版)在各方的全力配合下,厂商将在2009年以至少两个实现为目标。2009年4月,ECMA TC39已经发布了与5
th 版,并宣布可互操作实现的测试可以在 7 月中旬完成。但是,在 2009 年 12 月 3 日,ECMA-262 第五版发布了。
第 6 版-ECMAScript 2015
最初,此版本被称为 ECMAScript 6 或 ES6,后来更名为 ECMAScript 2015, 于 2015 年 6 月完成。此更新添加用于编写复杂应用程序的新基本语法,包括诸如(class Example { ... }) 之类的类的声明,诸如 import * as moduleName from "..." 之类的 ES6 模块; export const 示例,但以与 ECMAScript 5 严格模式相同的顺序定义它们。它还包括一些其他新功能,例如 Python 风格的生成器、用于局部声明的 let 关键字 、箭头函数表达式、用于常量变量声明的 const 关键字、二进制数据、类型数组、新集合、反射、数字和数学增强等等。
7th 版本-ECMAScript 2016
The 7
th 版本正式名称为 ECMAScript 2016,于 2016 年 6 月定稿。标准语言包括函数和变量的块作用域、破坏变量模式、正确的尾调用,async/await 关键字用于异步编程,取幂运算符**用于数字。
8th 版本-ECMAScript 2017
第 8 个
版本正式名称为 ECMAScript 2017,于 2017 年 6 月完成。它包括
<强>
async/await 使用 promises(在 CS future、promise、deferred、 和 delay 中指的是用于在一些并发编程语言)和生成器中同步程序的执行。
ECMAScript 2017 或第 8 版还包括原子和并发的特性,与 promise 的语法集成.
第 9th 版-ECMAScript 2018
第 9
版正式称为 ECMAScript 2018,于 2018 年 6 月完成。它包括新功能,例如 rest/spread 变量运算符(三个点: ...标识符)、异步迭代等
10th 版本-ECMAScript 2019
第 10
th 版本正式名称为 ECMAScript 2019,于 6 月发布2019 年。它包括添加一些新功能,例如 Array.prototype.flatMap、Array.prototype.flat、以及对 Array.sort 和 Object.fromEntries 的更改.
ES.Next
它不过是一个动态名称,在写作时指代下一个版本。和谐计划对于单一版本来说太过分了,它将其功能分为两组: 第一组具有最高优先级,将成为 ES5 之后的后续版本。 ECMAScript.next 是该版本的代号,用于避免过早提交已被 ES4 证明可疑的版本号。第二组直到 ECMAScript.next 之后才有时间。