ES6 版本

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 之后才有时间。