ES6 版本2024 年 8 月 29 日 | 5 分钟阅读 ECMA-262 已经发布了十个版本。 第 10 版的工作于 2019 年 6 月完成。ECMA-262 的十个版本如下所示:
在 2004 年 6 月期间,ECMA International 发布了 ECMA-357 标准,用于定义 ECMAScript 的扩展,该扩展称为 ECMAScript for XML。 让我们尝试详细说明 ECMAScript 的版本。 第 4 版(已放弃)ECMA-262 的第四版(ECMAScript 4 或 ES4)是自 1999 年发布第三版以来 ECMAScript 的首次更新。该规范的目标是在 2008 年 10 月之前完成。 到 2008 年 8 月,ECMAScript 的第四版已被缩小到代号为 ECMAScript Harmony 的项目中。 当时关于 Harmony 的讨论中的功能包括类、解构赋值、模块系统、可选类型注释和静态类型等。 此外,为了添加新功能,一些 ES3 错误计划在第 4 版中修复。 这些修复和其他修复,以及对 JSON 编码/解码的支持,都包含在 ECMAScript 第五版规范中。 2007 年底,Eich(后来的 Mozilla Foundation 的 CTO)和 Chris Wilson(Microsoft Internet Explorer 的平台架构师)之间的辩论在许多博客上公开。 由于在语言复杂性方面的政治分歧,第四版被放弃。为该版本提出的几个功能已完全删除。 第 5 版Yahoo、Microsoft、Google 和第四版的其他反对者组成了他们的小组委员会,用于设计一个不太雄心勃勃的 ECMAScript 3 更新,名为 ECMAScript 3.1。 此版本将侧重于库和安全更新,并非常强调兼容性。 在公开辩论之后,ECMAScript 3.1 和 ECMAScript 4 团队就折衷方案达成一致。 一段时间后,Brendan Eich 宣布 ECMA TC39 将专注于 ECMAScript 3.1(后来的 ECMAScript,第五版)的工作,并与所有各方完全合作,并且供应商将在 2009 年之前实现至少两个实现。 2009 年 4 月,ECMA TC39 发布了与第 5th 版相关的草案,并宣布互操作实现的测试可能会在 7 月中旬完成。 但是,在 2009 年 12 月 3 日,发布了 ECMA-262 的第五版。 第 6 版 - ECMAScript 2015最初,此版本被称为 ECMAScript 6 或 ES6,后来更名为 ECMAScript 2015,该版本于 2015 年 6 月最终确定。 此更新添加了用于编写复杂应用程序的新基本语法,包括类声明,例如 (class Example { ... }),ES6 模块,例如 import * as moduleName from "..."; export const Example,但以与 ECMAScript 5 严格模式相同的顺序定义它们。 它还包括一些其他新功能,例如 Python 风格的生成器,用于本地声明的 let 关键字,箭头函数表达式,用于常量变量声明的 const 关键字,二进制数据,类型化数组,新集合,反射,数字和数学增强功能等等。 第 7 版 - ECMAScript 2016第 7th 版正式称为 ECMAScript 2016,该版本于 2016 年 6 月最终确定。 标准语言包括函数和变量的块作用域、变量的解构模式、适当的尾调用、用于异步编程的 async/await 关键字、数字的求幂运算符 ** 等功能。 第 8 版 - ECMAScript 2017第 8th 版正式称为 ECMAScript 2017,该版本于 2017 年 6 月最终确定。 它包括使用 Promise 工作的 async/await 构造(在 CS 中,future、promise、deferred 和 delay 是指用于在某些并发编程语言中同步程序执行的构造)和生成器。 ECMAScript 2017 或第八版还包括原子和并发功能,以及与 Promise 的语法集成。 第 9 版 - ECMAScript 2018第 9th 版正式称为 ECMAScript 2018,该版本于 2018 年 6 月最终确定。 它包括变量的 rest/spread 运算符(三个点: …identifier)、异步迭代等新功能。 第 10 版 - ECMAScript 2019第 10th 版正式称为 ECMAScript 2019,该版本于 2019 年 6 月发布。 它包括添加一些新功能,例如 Array.prototype.flatMap、Array.prototype.flat 以及对 Array.sort 和 Object.fromEntries 的更改。 ES.Next它只是一个动态名称,在编写时指的是下一个版本。 Harmony 计划对单个版本的承诺太多,这将其功能分为两个组:第一组具有最高优先级,并且将在 ES5 之后的后续版本中发布。 为了避免过早地承诺使用已经证明可疑的 ES4 的版本号,ECMAScript.next 是该版本的代号。 第二组有时间直到 ECMAScript.next 之后。 下一个主题ES6 环境搭建 |
我们请求您订阅我们的新闻通讯以获取最新更新。