做有态度的前端团队

网易FEG前端团队

ECMAScript 2016 Language Specification (1)

#ECMAScript 2016 Language Specification (1)

听从卡总教导,无论学习什么,至少找到你能找到的最官方的文档,然后把文档好好的读一遍(就当学英语),而不是百度一下然后看别人的博客。所以去找到了ECMA标准翻出了emca-262,准备从最基础的东西入手,反正总体而言也是看不懂,所以只能慢慢啃。

所以读着觉得可以开个超级大坑,慢慢更新,什么时候更新完我也不知道,反正应该是不会有人看的。本来准备开始读的时候还是ECMAScript2015 ,拖着拖着已经变成ECMAScript2016了,感觉如果我再拖下去就要变成ECMAScript2017了。所以自己觉得还是尽快开始吧,至少争取要在ECMAScript2017出来之前更新完,不然岂不是全部都白写了。

全文总共586页,pdf版html版
更新的内容应该主要是包含三个部分,中心内容翻译,主要内容,个人阅读想法。每次应该更新一点,每周争取更新一次吧。

那么,就开始吧,反正也是写不完的。

版权信息

文件上来,过了封面说的就是,版权信息了,说的大概意思是你可以用但是不能随便改 ,我也不会去改的嗯 (ˉ▽ ̄~) 。

##目录
接下来就是目录了,总共34页,嗯,很好很强大。

Introduction

  1. Scope (适用范围,本标准定义了该语言)
  2. Conformance (一致性,请按标准执行)
  3. Normative References (引用标准,附带引用标准包括 ISO/IEC 10646:2003, ECMA-402,ECMA-404)
  4. Overview (概览)
  5. Notational Conventions (规范公约)
  6. EMCAScript Data Types and Values (数据类型和值)
  7. Abstract Operations (抽象操作)
  8. Executable Code and Execution Contexts (可执行代码和可执行上下文)
  9. Ordinary and Exotic Objects Contexts (内在和引用的对象属性)
  10. ECMAScript Language: Source Code (源代码)
  11. ECMAScript Language: Lexical Grammar (词法语法)
  12. ECMAScript Language: Expressions (表达式)
  13. ECMAScript Language: Statements and Declearations (声明)
  14. ECMAScript Language: Functions and Classes (函数和类)
  15. ECMAScript Language: Scripts and Modules (脚本和模块)
  16. Error Handling and Language Extensions (错误处理和语言扩展)
  17. ECMAScript Standard Built-in Objects (ECMAScript标准的内置对象)
  18. The Global Object (全局对象)
  19. Fundamental Objects (基本对象)
  20. Numbers and Dates (数和日期)
  21. Text Processing (文本处理)
  22. Indexed Collections (索引集合)
  23. Keyed Collection (键集合)
  24. Structured Data (数据类型集合 array dataview json)
  25. Control Abstraction Objects (控制抽象对象)
  26. Reflection (反映?这里没找到出来是啥子.........)

A. Grammar Summary (语法总结)
B. Additional ECMAScript Features for Web Browsers (web浏览器需要的额外特性)
C. The Strict Mode of ECMAScript (严格模式)
D. Corrections and Clarifications In ECMAScript2015 with Possible Compatibility Impact (修改和澄清在ECMAScript2015可能存在的兼容性影响)
E. Additions and Changes That Introduce Incompatibilities with Prior Editions (不兼容信息)
F. Bibliography(参考文献)
G. Copyright & Software License (版权信息)

##介绍

以下为介绍的原文翻译,主要讲述的是语言的发展历史,技术规范的发展历史。

本篇ECMA标准用语定义ECMAScript2016程序语言。这个是该语言的第七个版本。自从1997年发布了第一个版本起,ECMAScript已经发展成全世界最受欢迎病被最广泛应用的程序语言之一。他最为人所知的是作为语言嵌入web浏览器但现在也已经广泛适用于服务器和嵌入应用程序。

ECMAscript是基于几个起源技术, 最出名的是网景的Javascript和微软的Jscript。这个程序语言是有网景公司的Brendan Eich发明并首次使用在公司的Navigator 2.0浏览器上。他随后出现在网景所有后续版本的浏览器和微软IE3.0yihou的所有浏览器上。

ECMAScript语言技术规范的发展开始于1996年11月。第一个版本由ECMA大会于1997年6月发布。

该ECMA规范于1998年4月被提交到ISO/IEC JTC 1 (ISO/IEC第一联合技术委员会的第七分技术委员会的编号,成立于1987年,1991年正式命名为软件工程分技术委员会,2000年次更名为软件和系统工程分技术委员会。)用于收录在快速产品标准下承认为国际标准ISO/IEC 16262。第一和第二版本的改变是性质上的变化

标准的第三版本介绍了强有力的规则表达式,更好的字符串处理,全新的控制声明,try/catch异常处理,更严格的错误定义,格式化数字输出和对未来语言发展变化的预期。第三个版本于1999年12月被ECMA大会通过并于2002年6月发布为ISO/IEC 16262:2002。

在发布了第三个版本之后,ECMAScript已经被大量的作用于万维网的连接并作为变成语言被几乎所有浏览器支持。发展ECMAScript第四版本的核心部分已经做完,然而整个版本的工作并没有完成,该版本也没有被作为ECMAScript第四个版本发布。不过该本版的某些特性被加入到了第六版本中。

第五个版本的ECMAScript(发布为ECMA-262 5th edition)再第三版发布版本之上添加对很多新特性的支持并被 编撰为大量常见的浏览器解释型语言通用规范。这些新特性包括属性访问,反射机制,对象审查,原型属性的程序控制,条件数组的操作函数,对JSON数据类型的支持,提供增强错误检查和程序安全的严格模式,第五版本在2009年12月被ECMA大会采纳。

第五版本被指定为国际标准ISO/IEC 16262:2011。5.1版本,即ISO/IEC 16262:2011,合并了一些微小的修改,于2011年6月被EMCA大会采纳。

在第五版本做好准备发布后,2009年就把精力集中在第六版本的开发上。然而,工作需要以会追溯到1999年发布的第三版本都有影响的非常重要的实验和整个语言的增强性设计作为先导。非常实际的评价,第六版本的完成是过去15年努力的一个顶点。这次优化的目标包括为大型应用提供更好的支持,新增库,让ECMAScript作为其他语言的编译目标。有些主要增强包括模块,类声明,词法块范围,迭代器和生成器,异步编程用的promises,destructuring patterns(翻译不出来,求高手指教),正确的尾调用。ECMAScript内建对象库扩展到支持额外的数据结构包括maps,sets,和二进制数组,同时还扩展支持unicode字符和正则表达式。这些内建同时可以通过子类进行扩展。第六版本为常规,增量语言和增强库提供基础。2015年联合国大会通过了第六版本ECMAScript。

本篇ECMAScript规则说明是在ECMA TC39(技术委员会)下最新的以年度为更新并开放发展更新给大众之后的第一个版本。一份清晰的文本文档由ECMAScript2015为基础构建并起未来所有的更新发展进展都会全部放在GitHub上。该版本经过一年时间的发展,收到了大量的上传更新请求,包括上千个bug修复,编辑内容修复和其他改进。此外,还有大量软件工具,包括Ecmarkup,Ecmarkdown,Grammarkdown发展成熟。这份规则也包括对新的幂操作提供支持,并且为Array的原型添加了一个新方法叫做includes。

大量个体代表非常非常多组织都为Ecma TC39改进当前版本或发展未来版本做出了很多非常重要的贡献。此外,一个生机勃勃的社区已经出现并支持TC39的ECMAScript成果。这个社区已经审查了大量草稿,存档了上千个错误报告,执行操作实验,贡献测试案例,并为全世界范围内的ECMAScript开发社区提供教育服务。非常不幸的是,我们不可能具体识别每一个为这份成果做出过贡献的个人或者组织

Allen Wirfs-Brock (He's sort of the Grandalf of JavaScript)
ECMA-262, 6th Edition Project Editor
Brian Terlson
ECMA-262, 7th Edition Project Editor

介绍部分的翻译就结束了,主要介绍了整个ECMAScript在版本上的发展更新历程。本篇出现了大量我没见过的名词,应该都是一些新增的基础属性,既然是学习javascript,可能阅读ECMAscript是最直接最好的方法,虽然辛苦但是感觉应该会有很多收获。有篇任何错误或者bug欢迎在下面指出,查资料的时候发现一些国外的文章,有空的话也会保持更新速度然后定期更新。就这样。。。。。

手机阅读请扫描下方二维码:

已有 1 条评论

  1. 骗人,两个链接都是pdf版

添加新评论

ali-40.gifali-41.gifali-42.gifali-43.gifali-44.gifali-45.gifali-46.gifali-47.gifali-48.gifali-49.gifali-50.gifali-51.gifali-52.gifali-53.gifali-54.gifali-55.gifali-56.gifali-57.gifali-58.gifali-59.gifali-60.gifali-61.gif