本文概述
- 第四版(废弃)
- 第5版
- 第6版-ECMAScript 2015
- 第7版-ECMAScript 2016
- 第8版-ECMAScript 2017
- 第9版-ECMAScript 2018
- 第10版-ECMAScript 2019
- ES.Next
ECMA-262共发布了十个版本。有关版本10的工作已于2019年6月完成。ECMA-262的十个版本如下:
版 | 发布日期 | 名称 | 与上一版本相比的变化 | 编辑 |
---|---|---|---|---|
1. | 1997年6月 | 第一版 | 小盖伊·斯蒂尔 | |
2. | 1998年6月 | 为使规范与ISO / IEC 16262国际标准完全一致而进行的编辑更改。 | 迈克·考利肖 | |
3. | 1999年12月 | 增加了正则表达式, 新的控制语句, 更好的字符串处理, 更严格的错误定义, 数字输出格式, try / catch异常处理以及其他增强功能。 | 迈克·考利肖 | |
4. | 弃 | 第四版由于语言复杂性的政治差异而被放弃。此版本建议的一些功能已完全删除。 | ||
5. | 2009年12月 | 增加了”严格模式”, 这是一个子集, 旨在通过错误检查提供更多信息并避免易于出错的构造。它阐明了第三版规范中的一些歧义, 并且还适应了与该规范始终不同的实际实现的行为。添加了一些新功能, 例如getter和setter, 以及对JSON的库支持。 | Pratap Lakshman, 艾伦·维尔夫斯·布洛克 | |
5.1 | 2011年6月 | 此5.1版ECMAScript标准与第三版ISO / IEC 16262:2011完全一致。 | Pratap Lakshman, 艾伦·维尔夫斯·布洛克 | |
6. | 2015年6月 | ECMAScript 2015 (ES 2015) | 添加了用于编写应用程序的新语法, 包括类声明, ES6模块, 但以与ECMAScript5严格模式相同的术语定义了它们。此更新的其他功能包括迭代器, 箭头函数表达式, Python样式的生成器, 二进制数据, 类型化数组, 新集合等。 | 艾伦·维尔夫斯·布洛克 |
7. | 2016年六月 | ECMAScript 2016 (ES 2016) | 主要的标准语言包括一些功能, 例如破坏模式的变量, 函数和变量的块作用域, 适当的尾部调用, 数字的幂运算符等。 | 布莱恩·特里森 |
8. | 2017年六月 | ECMAScript 2017 (ES 2017) | 它包括异步/等待构造, 该构造通过使用生成器和promise工作。它还包含并发和原子的功能, 与promises的语法集成(异步/等待)。 | 布莱恩·特里森 |
9. | 2018年六月 | ECMAScript 2018 (ES 2018) | 它的新功能包括变量的休息/扩展运算符, 异步迭代。 | 布莱恩·特里森 |
10. | 2019年六月 | ECMAScript 2019 (ES 2019) | 新功能包括Array.prototype.flatMap, Array.prototype.flat以及对Array.sort和Object.fromEntries的更改。 | 布莱恩·特里森(Brian Terison), 布拉德利·法里亚斯(Bradley Farias), 乔丹·哈班德(Jordan Harband) |
在2004年6月, ECMA International发布了ECMA-357标准, 用于定义ECMAScript的扩展, 即ECMAScript for XML。
让我们尝试详细说明ECMAScript的版本。
第四版(废弃)
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浏览器平台架构师)之间的辩论在许多博客上公开了。
第四版由于语言复杂性的政治差异而被放弃。此版本建议的一些功能已完全删除。
第5版
雅虎, 微软, 谷歌和第四版的其他反对者组成了其小组委员会, 以设计不太雄心勃勃的ECMAScript 3更新, 名为ECMAScript 3.1。该版本将侧重于库和安全更新, 重点是兼容性。在公开辩论之后, ECMAScript 3.1和ECMAScript 4团队就折衷方案达成了共识。
一段时间后, Brendan Eich宣布ECMA TC39将专注于ECMAScript 3.1(后来的ECMAScript, 第五版)的工作, 以及各方的全面合作, 并且供应商将在2009年之前实现至少两个实施目标。 ECMA TC39已发布了与第5版相关的草案, 并宣布可互操作性实施的测试将于7月中旬完成。但是, 2009年12月3日, 发布了第五版ECMA-262。
第6版-ECMAScript 2015
此版本最初被称为ECMAScript 6或ES6, 后来更名为ECMAScript 2015, 该版本于2015年6月完成。此更新为编写复杂的应用程序添加了新的基本语法, 包括诸如(class Example { …}), ES6模块, 例如import * as from” …”中的moduleName;; export const示例, 但以与ECMAScript 5严格模式相同的顺序定义它们。它还包括其他一些新功能, 例如Python样式生成器, 用于局部声明的let关键字, 箭头函数表达式, 用于常量变量声明的const关键字, 二进制数据, 类型数组, 新集合, 反射, 数字和数学增强等。更多。
第7版-ECMAScript 2016
第七版正式称为ECMAScript 2016, 于2016年6月完成。标准语言包括功能和变量的块作用域, 破坏变量的模式, 正确的尾部调用, 异步编程的async / await关键字, 求幂等功能。数字的运算符**。
第8版-ECMAScript 2017
第8版正式称为ECMAScript 2017, 已于2017年6月完成。它包括使用promise工作的async / await结构(在CS future中, promise, deferd和delay是指用于同步执行的结构。并发编程语言)和生成器。
ECMAScript 2017或第8版还包括原子和并发功能以及带有Promise的语法集成功能。
第9版-ECMAScript 2018
第9版正式称为ECMAScript 2018, 已于2018年6月完成。它包括新功能, 例如变量的剩余/扩展运算符(三个点:…标识符), 异步迭代等。
第10版-ECMAScript 2019
第10版正式称为ECMAScript 2019, 于2019年6月发布。它包括一些新功能, 例如Array.prototype.flatMap, Array.prototype.flat以及对Array.sort和Object.fromEntries的更改。
ES.Next
它只不过是一个动态名称, 在撰写本文时就引用了下一个版本。单一版本的协调计划太过严格, 将其功能分为两组:第一组具有最高优先级, 并且将成为ES5之后的后续版本。 ECMAScript.next是该版本的代号, 以免过早提交已被ES4证实为可疑的版本号。第二组有时间直到ECMAScript.next之后。
评论前必须登录!
注册