forked from tc39/ecma262
-
Notifications
You must be signed in to change notification settings - Fork 14
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #28 from realywithoutname/review/issue-1
Review/issue 1
- Loading branch information
Showing
1 changed file
with
14 additions
and
14 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,23 +1,23 @@ | ||
<emu-intro id="sec-intro"> | ||
<h1>介绍</h1> | ||
<p>此标准定义了ECMAScript 2018语言,是ECMAScript语言规范的第九版。自从1997年第一版发布以来,ECMAScript已经成为世界上应用最广泛的编程语言之一。众所周知的是作为嵌入在Web浏览器中的语言,但该语言也被广泛应用于服务器和嵌入式应用程序。</p> | ||
<p>ECMAScript基于几种始发技术,最著名的是Netscape的JavaScript以及Microsoft的JScript。该语言由Netscape的Brendan Eich发明,并首次出现在该公司的Navigator2.0浏览器中。它已经出现在Netscape的所有后续浏览器以及Microsoft自Internet Explorer3.0开始的所有浏览器中。</p> | ||
<p>ECMAScript语言规范的制定始于1996年11月。第一版的Ecma标准在1997年6月通过Ecma委员会。</p> | ||
<p>该(第一版)Ecma标准采用快速程序提交 ISO/IEC JIC 1,并于1998年4月被批准为国际标准 ISO/IEC16262。在1998年Ecma委员会通过了第二版 ECMA-262,以保证完全符合 ISO/IEC 16262。 第一版和第二版的变化是社论性质的。</p> | ||
<p>第三版标准引入了强大的正则表达式,更好的字符串处理,新的控制语句,try/catch异常处理,更严格的错误定义,数字输出的格式化以及预期未来语言成长的微小变化。在1999年12月Ecma委员会通过了第三版ECMAScript标准,于2002年6月发布为 ISO/IEC 16262:2002。</p> | ||
<p>在第三版发布后,ECMAScript在万维网上被大量使用,它成为所有Web浏览器支持的编程语言。开发第四版ECMAScript是一个有象征意义的工作,然而这项工作未能完成,也没能作为第四版ECMAScript发布,不过其中一些开发被纳入第六版。</p> | ||
<p>第五版ECMAScript(以ECMA-262 5<sup>th</sup> edition发布)编纂了那些浏览器之间的通用实现,并作出事实性的解释写入语言规范,同时添加了很多新的功能一起合并到第五版发布。 这些功能包括<abbr title="accessor properties">访问器属性</abbr>,<abbr title="reflective creation and inspection of objects">对象的反向创建与检查</abbr>,<abbr title="program control of property attributes">对象属性的属性控制</abbr>,<abbr title="additional array manipulation functions">更多数组处理函数</abbr>,<abbr title="support for the JSON object encoding format">JSON对象编码格式化的支持</abbr>, 以及一种<abbr title="enhanced error checking">增强错误检查</abbr>和<abbr title="program security">程序安全性</abbr>的<abbr title="strict mode">严格模式</abbr>。第五版于2009年12月通过Ecma委员会。</p> | ||
<p>第五版采用快速程序提交ISO/IEC JIC 1,批准为国际标准ISO/IEC 16262:2011。第5.1版ECMAScript标准包含较少的更正,并与ISO/IEC 16262:2011保持一致。于2011年6月Ecma委员会通过5.1版。</p> | ||
<p>第六版于2009年开始作为重点开发,当时第五版正在准备出版。然而,这之前的重点实验以及语言增强设计工作可以追溯到1999年第三版发布。实际上,第六版的完成是十五年努力的结果。 这个版本中增加了包括对大型应用提供更好的支持,<abbr title="library creation">库创建</abbr>, 以及以ECMAScript作为其他语言的编译目标。其中主要的增强功能包括<abbr title="modules">模块化</abbr>,<abbr title="class declarations">类声明</abbr>,<abbr title="lexical block scoping">词法块作用域</abbr>,<abbr title="iterators and generators">迭代器以及生成器</abbr>,<abbr title="promises for asynchronous programming">异步编程的promise</abbr>,<abbr title="destructuring patterns">解构模式</abbr>,以及<abbr title="proper tail calls">正确的尾部调用</abbr>。 ECMAScript内置库扩展支持了额外的数据抽象,包括<abbr title="maps">Map</abbr>,<abbr title="sets">Set</abbr>,<abbr title="arrays of binary numeric values">数组二进制操作</abbr>, 同时也支持<abbr title="Unicode supplemental characters in strings and regular expressions">Unicode补充字符在字符串及正则表达式</abbr>中使用。内置库也通过子类进行了扩展。第六版为<abbr title="regular">正则</abbr>,<abbr title="incremental language">渐进式语言</abbr>以及<abbr title="library enhancements">库增强</abbr>提供了基础。第六版与2015年6月通过了Ecma委员会。</p> | ||
<p>ECMAScript2016是使用新发布策略以及公开开发进度的Ecma TC39的首个ECMAScript版本。从ECMAScript2015源文档构建一个纯文本的源文档,以支持完全在GitHub上进一步开发。在这个标准的发展的这一年,数百个`pull requests`和`issues`被提交,代表着成千上万的错误修复,编辑修复和其他改进。另外,开发了许多软件工具来帮助这一工作,包括Ecmarkup,Ecmarkdown和Grammarkdown。ES2016还包括支持一个新的求幂运算符,以及为Array.prototype添加了一个名为`include`的新方法。</p> | ||
<p>此规范引入了<abbr title="Async Functions">Async函数</abbr>,<abbr title="Shared Memory">共享内存</abbr>, 以及<abbr title="Atomics along with smaller language and library enhancements">更小语言和库增强的原子</abbr>,<abbr title="bug fixes">错误修复</abbr>,<abbr title="editorial updates">编辑更新</abbr>。Async函数通过提供`promise-returning`函数语法来提高异步编程体验。共享内存和原子引入了一种新的内存模型,允许<abbr title="multi-agent programs">多个代理程序</abbr>使用原子操作进行通信,即使在并行CPU上也能确保程序按照明确定义的执行顺序。此规范还包括Object新的静态方法:Object.values,Object.entries和Object.getOwnPropertyDescriptors。</p> | ||
<p>许多个人和组织在Ecma TC39为当前版本以及以前的版本做出了非常重要的贡献。此外,有了一个支持TC39,为ECMAScript努力的充满活力的社区。这个社区审查了许多草案,提交了大量的错误报告,执行实施实验,提供测试套件,全世界的ECMAScript的开发者都可以从中受益。然而遗憾的是,我们无法对作出努力贡献的每个人和组织进行一一感谢。</p> | ||
<p>此标准定义了 ECMAScript 2018 语言,是 ECMAScript 语言规范的第九版。自从 1997 年第一版发布以来,ECMAScript 已经成为世界上应用最广泛的编程语言之一。他最为认知的是作为嵌入在 Web 浏览器中的语言,但也被广泛应用于服务器和嵌入式应用程序。</p> | ||
<p>ECMAScript 基于几种始发技术,最著名的是 Netscape 的 JavaScript 以及 Microsoft 的 JScript。该语言由 Netscape 的 Brendan Eich 发明,并首次出现在该公司的 Navigator2.0 浏览器中。它已经出现在 Netscape 的所有后续浏览器以及 Microsoft 自 Internet Explorer3.0 开始的所有浏览器中。</p> | ||
<p>ECMAScript 语言规范的制定始于 1996 年 11 月。第一版的Ecma标准在 1997 年 6 月通过 Ecma 联合大会。</p> | ||
<p>该(第一版) Ecma 标准为了采用快速通道通过,被提交给 ISO/IEC JIC 1,于 1998 年 4 月被批准为国际标准 ISO/IEC16262。在 1998 年 Ecma 联合大会通过了第二版 ECMA-262,以保证完全符合 ISO/IEC 16262。第一版和第二版的变化是编辑层面的。</p> | ||
<p>第三版标准引入了强大的正则表达式,更好的字符串处理,新的控制语句,try/catch 异常处理,更严格的错误定义,数字输出的格式化以及预期未来语言发展的微小变化。第三版 ECMAScript 标准于1999年12月被 Ecma 联合大会采纳,于 2002 年 6 月作为 ISO/IEC 16262:2002 发布。</p> | ||
<p>在第三版发布后,ECMAScript 在万维网上被大量使用,它成为所有Web浏览器支持的编程语言。为了开发第四版 ECMAScript,做了大量有意义的工作,然而这项工作未能完成,也没能作为第四版 ECMAScript 发布,不过其中一些被纳入第六版开发(工作)中。</p> | ||
<p>第五版 ECMAScript(以 ECMA-262 5<sup>th</sup> 版本发布)为那些已经被浏览器广泛实现的语言规范编纂了实质的解释,同时增加了对第三版发布以来出现的新功能的支持。 这些功能包括<abbr title="accessor properties">访问器属性</abbr>,<abbr title="reflective creation and inspection of objects">对象的反向创建与检查</abbr>,<abbr title="program control of property attributes">对象属性特性的控制</abbr>,<abbr title="additional array manipulation functions">更多数组操作函数</abbr>,<abbr title="support for the JSON object encoding format">JSON对象编码格式的支持</abbr>, 以及一种<abbr title="enhanced error checking">增强错误检查</abbr>和<abbr title="program security">程序安全性</abbr>的<abbr title="strict mode">严格模式</abbr>。第五版于2009年12月Ecma联合大会采纳。</p> | ||
<p>第五版为了采用快速通道通过,被提交给 ISO/IEC JIC 1,被批准为国际标准 ISO/IEC 16262:2011。第 5.1 版 ECMAScript 标准包含较少的更正,并与 ISO/IEC 16262:2011 保持一致。于2011年6月 Ecma 联合大会被采纳。</p> | ||
<p>第六版于 2009 年开始作为重点开发,当时第五版正在准备出版。然而,这之前的重点实验以及语言增强设计工作可以追溯到 1999 年第三版发布。实际上,第六版的完成是十五年努力的结果。 这个版本中增加了包括对大型应用程序,<abbr title="library creation">库创建</abbr>, 以及以 ECMAScript 作为其他语言的编译目标提供更好的支持。其中主要的增强功能包括<abbr title="modules">模块化</abbr>,<abbr title="class declarations">类声明</abbr>,<abbr title="lexical block scoping">词法块作用域</abbr>,<abbr title="iterators and generators">迭代器以及生成器</abbr>,<abbr title="promises for asynchronous programming">异步编程的promise</abbr>,<abbr title="destructuring patterns">解构模式</abbr>,以及<abbr title="proper tail calls">正确的尾部调用</abbr>。 ECMAScript内置库扩展支持了额外的数据抽象,包括<abbr title="maps">Map</abbr>,<abbr title="sets">Set</abbr>,<abbr title="arrays of binary numeric values">二进制值的数组</abbr>, 同时也支持<abbr title="Unicode supplemental characters in strings and regular expressions">Unicode补充字符在字符串及正则表达式</abbr>中使用。内置库也通过子类进行了扩展。第六版为<abbr title="regular">正则</abbr>,<abbr title="incremental language">渐进式语言</abbr>以及<abbr title="library enhancements">库增强</abbr>提供了基础。第六版于 2015 年 6 月被Ecma联合大会采纳。</p> | ||
<p>ECMAScript2016使用 Ecma TC39 委员会新的年度发布策略以及公开开发流程的首个 ECMAScript 版本。从 ECMAScript2015 源文档作为基础构建一个纯文本的源文档,以支持完全在 GitHub 上进一步开发。在这个标准的发展的这一年,数百个`pull requests`和`issues`被提交,代表着成千上万的错误修复,编辑修复和其他改进。另外,许多软件工具被开发用来帮助这一工作,包括Ecmarkup,Ecmarkdown和Grammarkdown。ES2016还包括支持一个新的求幂运算符,以及为 Array.prototype 添加了一个名为`include`的新方法。</p> | ||
<p>这一版本的规范引入了<abbr title="Async Functions">Async函数</abbr>,<abbr title="Shared Memory">共享内存</abbr>, 以及<abbr title="Atomics along with smaller language and library enhancements">更小语言和库增强的原子</abbr>,<abbr title="bug fixes">错误修复</abbr>,编辑更新。Async函数通过提供`promise-returning`函数语法来提高异步编程体验。共享内存和原子引入了一种新的内存模型,允许<abbr title="multi-agent programs">多个代理程序</abbr>使用原子操作进行通信,以确保即便在并行 CPU 上程序也能有明确定义的执行顺序。此规范还包括 Object 新的静态方法:`Object.values`,`Object.entries`和`Object.getOwnPropertyDescriptors`。</p> | ||
<p>许多个人和组织在 Ecma TC39 为当前版本以及以前的版本做出了非常重要的贡献。此外,有了一个充满活力的社区支持 TC39 为 ECMAScript 所做的努力。这个社区审查了许多草案,提交了大量的错误报告,执行实施实验,提供测试套件,全世界的 ECMAScript 的开发者都可以从中受益。然而遗憾的是,不能一一鸣谢为此做出贡献的每个人和组织。</p> | ||
<p> | ||
Allen Wirfs-Brock<br> | ||
ECMA-262, 6<sup>th</sup> edition 项目编辑 | ||
ECMA-262, 6<sup>th</sup>版本 项目编辑 | ||
</p> | ||
<p> | ||
Brian Terlson<br> | ||
ECMA-262, 7<sup>th</sup> edition 项目编辑 | ||
ECMA-262, 7<sup>th</sup>版本 项目编辑 | ||
</p> | ||
</emu-intro> |