ES6版本详细介绍

本文概述

  • 第四版(废弃)
  • 第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【ES6版本详细介绍】它只不过是一个动态名称, 在撰写本文时就引用了下一个版本。单一版本的协调计划太过严格, 将其功能分为两组:第一组具有最高优先级, 并且将成为ES5之后的后续版本。 ECMAScript.next是该版本的代号, 以免过早提交已被ES4证实为可疑的版本号。第二组有时间直到ECMAScript.next之后。

    推荐阅读