那么然后来稍微介绍一下什么是 ECMA国际普京网址:,语言标准制定的技术委员会 TC39

编者按:近日 360 已成为 Ecma 会员,奇舞团将代表公司参与 TC39
的工作,制定 JavaScript 语言标准。关于 JavaScript
的标准提案,大家有任何建议也可以通过我们进行反馈。欢迎大家一起来推动
JavaScript 朝着更强大、更高效、更安全的方向发展。

名词解释:

ISO: 国际标准化组织(International Organization for
Standardization,ISO)简称ISO,是一个全球性的非政府组织,是国际标准化领域中一个十分重要的组织。

ECMA: Ecma国际(Ecma
International)是一家国际性会员制度的信息和电信标准组织。原名为欧洲计算机制造商协会ECMA(European
Computer Manufacturers Association)

ECMAScript: ECMAScript 是标准化组织 ECMA(Ecma International –
European association for standardizing information and communication
systems)发布的脚本语言规范。

ECMA第39号技术委员会 (TC39):
负责制定和审核ECMA-262标准,成员由业内的大公司派出的工程师组成,目前共25个人。该委员会定期开会,所有的邮件讨论和会议记录,都是公开的。


维基百科:

版本 发表日期 与前版本的差异
1 1997.6 首版
2 1998.6 格式修正,以使得其形式与ISO/IEC16262国际标准一致
3 1999.12 强大的正则表达式,更好的词法作用域链处理,新的控制指令,异常处理,错误定义更加明确,数据输出的格式化及其它改变
4 放弃 由于关于语言的复杂性出现分歧,第4版本被放弃,其中的部分成为了第5版本及Harmony的基础。
5 2009.12 新增“严格模式(strict mode)”,一个子集用作提供更彻底的错误检查,以避免结构出错。澄清了许多第3版本的模糊规范,and accommodates behaviour of real-world implementations that differed consistently from that specification。增加了部分新功能,如getters及setters,支持JSON以及在物件属性上更完整的反射。
6 2015.6 多个新的概念和语言特性。ECMAScript Harmony将会以“ECMAScript 6”发布。
7 工作中 多个新的概念和语言特性

*
2004年6月Ecma组织发表了ECMA-357标准,它是ECMAScript的一个扩延,也被称为E4X(ECMAScript
for XML)。

什么是ECMAScript(来龙去脉娓娓道来)?

术语

This Ecma Standard defines the ECMAScript 2017 Language. It is the
eighth edition of the ECMAScript Language Specification. Since
publication of the first edition in 1997, ECMAScript has grown to be one
of the world’s most widely used general-purpose programming languages.
It is best known as the language embedded in web browsers but has also
been widely adopted for server and embedded applications.

360 加入 Ecma 参与 JavaScript 标准制定

2019 年 6 月底,三六零安全科技股份有限公 司(以下简称 360
)成为了国际标准组织 Ecma International 的会员,并加入了负责 JavaScript
语言标准制定的技术委员会 TC39。这是 JavaScript 诞生 20
多年以来首次有中国公司的参与。在随后召开的 TC39 第71次技术会议上,360
技术委员会 Web 前端分会委员贺师俊作为 360 的代表接手了 function.sent
提案的工作。这份提案早已达到第2阶段,但是提案的原负责人退休后,委员会里一直无人愿意接手,提案停滞多年,即将被撤销。这次
360 代表主动承担起该提案的工作,标志着中国已经正式参与到 JavaScript
语言标准的制定中。在 12 月举办的 Ecma 第 118 次会员大会上,360
代表也见证了阿里巴巴、华为和 Sujitech 等另外 3 家中国公司被批准为 Ecma
会员。

普京网址 1

ECMAScript 1

1997年6月发布:

本质上与javascript 1.1 相同

只不过只不过删除了所有针对浏览器的代码并作了一些较小的改动:ECMAScript要求支持Unicode标准,而且对象也变成了平台无关的。


作者:冯天然

ECMAScript

Sun(现在的Oracle)公司持有着“Java”和“JavaScript”的商标。这就让微软不得不把自己的JavaScript方言称之为“JScript”。然后,在这门语言被标准化的时候,就必须使用一个与二者都不同的名字。“ECMAScript”就这样诞生了,这个名字的来由是因为执行标准化的组织是Ecma国际。通常来说,术语“ECMAScript”和“JavaScript”指的是同一个东西。但如果把JavaScript看成是“Mozilla或其他组织的ECMAScript实现”,那么ECMAScript就是实现JavaScript所依据的标准。

Ecma标准定义ECMAScript
2017。是ECMAScript规范的第八版。自从2017年发布了第一版之后,ECMAScript已经成长为全球使用最广泛的编程语言之一。ECMAScript最为人所知的作为编程语言被嵌入在web浏览器中的,但是它同样已经广泛的被使用在服务器和嵌入式应用中。

关于 Ecma International

Ecma International
是一家国际性会员制度的信息和电信标准组织,总部位于瑞士日内瓦。成立四十年来,Ecma
制定了很多信息和电信技术标准。其中就包括 Web 开发领域最重要的编程语言
JavaScript 的标准:ECMAScript。此外,C#、Dart和 CD-ROM
等数百项标准也是由 Ecma 制定的。Ecma 标准有大约三分之二同时被 ISO 批准为
ISO 标准。

JavaScript 是全球使用最为广泛的计算机编程开发语言之一,从网站到移动
App,从可穿戴设备到服务器,都能看到这门编程语言的身影。在 GitHub
编程语言排行榜上,JavaScript 连续6年蝉联第一。全球互联网企业大都将
JavaScript 作为主要编程语言。

普京网址 2

ECMAScript 2

1998年6月发布:

主要是编辑加工的结果。这一版的内容更新是为了与ISO/IEC-16262保持严格一致,没有作任何新增、修改或删节处理。

因此,一般不使用第2版来衡量ECMAScript实现的兼容性。


链接:

ECMA-262

Ecma国际
(一个标准化组织)创建了ECMA-262规范,这个规范就是ECMAScript语言的官方标准。

ECMAScript is based on several originating technologies, the most
well-known being JavaScript (Netscape) and JScript (Microsoft). The
language was invented by Brendan Eich at Netscape and first appeared in
that company’s Navigator 2.0 browser. It has appeared in all subsequent
browsers from Netscape and in all browsers from Microsoft starting with
Internet Explorer 3.0.

打破僵局

长期以来,JavaScript 标准规范的制定主要由国外会员公司主导。此次 360 参与
JavaScript 语言标准的制定,将会向世界传递来自中国开发者的声音。360
非常重视行业标准的制定工作,除了 Ecma 之外,还参与了
W3C(万维网联盟)、国际电信联盟电信标准化部门(ITU)、中国通信标准化协会、信息安全标委会、汽车信息安全工作组等标准化组织的标准制定工作。

ECMAScript 3

1999年12月发布:

是对ECMAScript标准第一次真正的修改。

新增了对正则表达式、新控制语句、try-catch异常处理的支持,修改了字符处理、错误定义和数值输出等内容。

从各方面综合来看,第3版标志着ECMAScript成为了一门真正的编程语言。也成为JavaScript的通行标准,得到了广泛支持。


来源:知乎

什么是ECMAScript

首先既然要更好的了解,起码得先说说什么是 ECMAScript。

ECMAScript 是一种由 ECMA国际(前身为欧洲计算机制造商协会)通过 ECMA-262
标准化的脚本程序设计语言。

看起来出现了很多奇怪的名词,ECMA国际?ECMA-262?黑人问号???

那么然后来稍微介绍一下什么是 ECMA国际。

ECMA国际

Ecma国际(Ecma
International)是一家国际性会员制度的信息和电信标准组织。1994年之前,名为欧洲计算机制造商协会(European
Computer Manufacturers
Association)。因为计算机的国际化,组织的标准牵涉到很多其他国家,因此组织决定改名表明其国际性。现名称已不属于首字母缩略字。

与国家政府标准机构不同,Ecma国际是企业会员制的组织。组织的标准化过程比较商业化,自称这种营运方式减少官僚追求效果。

上面这些信息都可以在 WIKI
中找到。大家可以很明确的看到,Ecma国际是一家和企业密切相连的组织,所以
Ecma国际制定的规范都是由各类企业来做主要的制定和推广。

那么既然说到了 Ecma国际,那么它都做了些什么事呢?

其实
Ecma国际负责了很多标准的制定,比如有如下这些规范。大家可以看到这里面有我们今天的主角,ECMAScript
规范。

CD-ROM格式(之后被国际标准化组织批准为ISO 9660)

C#语言规范

C++/CLI语言规范

通用语言架构(CLI)

ECMAScript语言规范(JavaScript)

Eiffel语言

电子产品环境化设计要素

Universal 3D标准

OOXML

Dart语言规范

JAVASCRIPT的诞生

在说 ECMA262 之前,我们先来讲讲 javascript 的历史。

在1994年,Netscape 发布了
Navigator0.9,但是因为那个时候的浏览器缺乏和用户有良好交互的能力。所以
Netscape 急切渴望一门可以在浏览器中运行,可以提供一定用户交互的语言。

然后在1995年,Netscape 让 Brendan Eich 去开发这门语言。然而,javascript
诞生了。

然而在此之后,Microsoft 推出了一门类似的语言,JScript。

Netscape 为了提升 javascript 的竞争力,于是将 javascript 提供给 ECMA组织
进行标准化。

然后,1997年7月,ECMA262 标准出台。

时隔14年之后,ECMA-262 标准也被另一个国际标准化组织 ISO(International
Organization for Standardization)在2011年6月批准,标准号是 ISO-16262。

ECMAScript 作为一门脚本程序设计语言标准,并不只有 javascript
这一种实现,它也有很多的方言实现。比如有下面这些语言:

JavaScript

Ejscript

JScript .NET

ActionScript

DMDScript

CriScript

InScript

飞速发展和稳定期

在 ECMAScript 规范初版发布后不久。

1998年6月,ECMAScript 2.0 发布。

1999年12月,ECMAScript 3.0 发布。

这时,ECMAScript
规范本身也相对比较完善和稳定了,但是接下来的事情,就比较悲剧了。

2007年10月。。。。ECMAScript 4.0 草案发布。

这次的新规范,历时颇久,规范的新内容也有了很多争议。

在制定ES4的时候,是分成了两个工作组同时工作的。

一边是以 Adobe, Mozilla, Opera 和 Google为主的 ECMAScript 4 工作组。

一边是以 Microsoft 和 Yahoo 为主的 ECMAScript 3.1 工作组。

ECMAScript 4 的很多主张比较激进,改动较大。而 ECMAScript 3.1
则主张小幅更新。

最终经过 TC39 的会议,决定将一部分不那么激进的改动保留发布为 ECMAScript
3.1,然后将一部分比较激进的部分放置到 ES.NEXT 中,命名为
Harmony(和谐),留待以后再进行商榷。接下来,ECMAScript  3.1 变成了
ECMAScript 5,而 ES.NEXT 中的那些特性,则有着相当一部分被ECMAScript
6,也就是 ECMAScript 2015 所吸收了。所以说虽然 ECMAScript 4
被废弃了,但是它终究还是通过另一种方式活了下来。

然后,2009年12月,ECMAScript 5 发布。

2011年6月,ECMAScript 5.1 发布。

TC39

中间插个小话题。其实在前面大家仔细看,会发现有个名词,TC39。为了接下来的内容,所以先来解释一下
TC39 是什么。

TC(Technical Committees)

TG(Task Groups)

在ECMA国际,每个标准都会有一个 TC 来负责,而一个 TC 中可能会有不同的 TG
来负责不同的工作。而负责 ECMA262,也就是我们所说的 ECMAScript 的就是
TC39(以前叫 TC39-TG1)。

Ecma
organisation在这里我们可以看到各个
TC,并且可以查看其负责的标准。

ECMAScript 2015

接下来是一部重头戏。

2015年6月,ECMAScript 6,也就是 ECMAScript 2015 发布了。

新的规范中,带有大量 ECMAScript 4 中激进特性,以及常年的提案积累。所以
ECMAScript 6 里和前一版标准有了非常大的差别。

从 ECMAScript 6
开始,标准有了新的,更加规范化和快速的制定流程。面对着每年一次的,频繁的标准更替,再采用1234的版本号来标注规范显得不太合适。所以从
ECMAScript 6 开始,就开始采用年号来做版本。即 ECMAScript 2015。

新的规范制定流程

在新的规范制定流程中,要求成文标准要从事实标准中诞生,实现先于标准存在,大家可以在接下来的流程说明中看出来。

每个新特性,从开始到完成一共要经历5个阶段。

strawman (稻草人)阶段

任何人都可以提交pull request到GitHub – tc39/ecma262: Status, process,
and documents for
ECMA262

可以是一个提议,想法,初步描述

proposal(提案)阶段

TC39制定成员作为 champion

TC39审阅通过

有实现的 Demo 或者 Polyfill

初步描写标准的语义语法算法复杂度解决的问题等

Draft(草案)阶段

有两个或两个以上的实现(包括babel这类的转译实现)

使用正式的语言描述该语法,api等

candidate(候选)阶段

至少2个实现,可以为实验性实现

ECMAScript spec editor 通过审核

TC39 review 通过

文本编写完成

Finished(完成)阶段

编写 test 262 测试用例

通过两个实现该特性的内核测试

ECMAScript spec editor 通过审核

开发者表示支持和认可

接下来,在每年的3月和9月,都会提交新特性的申请,在 ECMA General Assembly
通过以后,被添加到标准中去。

值得注意的是,TC39 每年的工作日程也是规划好了的。

每年的3月,TC39 会召开会议,将完成的特性添加到标准中。

每年的4月到6月,会由 ECMA CC 和 ECMA CG 来做 Review。

每年的7月,批准通过新标准并且发布。所以,ECMAScript 2016
标准,其实也已经正式发布了,虽然只新增了两个特性。我们现在已经可以开始看
ECMAScript 2017 的草案了。

迷茫的新特性

对于有些人来说,前端的更新总是很突兀,很让人迷茫。

但是其实不是的。变化总是一点一点发生的。

GitHub – tc39/proposals: Tracking ECMAScript
Proposals

我们可以在 TC39 的 Github
仓库中找到完成了,废弃的,以及正在进行中的提案。

多去关注这些东西,对于很多新事物的到来,我们也就不会有多惊讶了。

别的 ECMA 标准?

和 ECMAScript 有关的标准只有 ECMA262 吗?

其实不是。和 ECMAScript 有关的标准有
ECMA262,ECMA290,ECMA327,ECMA357,ECMA402,ECMA404,ECMA414等等。

其中290,327,357等等没有推广开来,被废弃。

ECMA 262 是语言规范本身。

ECMA 402 则是制定一些基于 ECMAScript 5 或者之后版本的一些国际化 API
标准。

ECMA 404 是 JSON 规范。

ECMA 414 则规定了哪些规范是和 ECMAScript 有关的。目前内部就包含了
262,402和404。

备注

如果大家想更好的关注标准的变化,可以订阅 TC39 的邮件组,关注 TC39 的
Github,并且在 Twitter 上关注 TC39 的成员。

引用

ECMAScript

Welcome to Ecma
International

John Resig –  ECMAScript
Harmony

如何评价 ECMAScript 2016(ES7)只新增2个特性? –
张秋怡的回答

The TC39
Process

ECMAScript 6

指的就是ECMA-262规范的第六版,同时也是当前最新的正式规范。

ECMAScript是基于多种原有的技术,最出名的是就是JavaScript(Netscape)和JScript(Microsoft)。该语言是由Netscape公司的Brendan
Eich发明,并且首次出现在该公司的Navigator
2.0浏览器中。Netscape公司后来所有的浏览器以及Microsoft公司的Internet
Explorer 3.0.之后的浏览器中都采用了该语言。

展望未来

近年来,国内的很多 IT
企业已经从标准的追随者成为了标准制定者。360、阿里巴巴、华为和 SujiTech
等中国公司加入 Ecma 后,将共同参与 ECMAScript 标准制定。与此同时,360
将与所有中国区 Ecma 会员一道,致力于成为国内 JavaScript 开发者与 Ecma
沟通的纽带和桥梁,让 Ecma
听到来自中国开发者的声音。假以时日,相信中国企业的加盟一定能给全球
JavaScript
社区带来新的气象和面貌,推动这门语言朝着更强大、更高效、更安全的方向发展。

来源:奇舞周刊

ECMAScript 4

2007年10月ECMAScript 4.0版草案发布

对3.0版做了大幅升级,预计次年8月发布正式版本。

草案发布后,由于4.0版的目标过于激进,各方对于是否通过这个标准,发生了严重分歧。

以Yahoo、Microsoft、Google为首的大公司,反对JavaScript的大幅升级,主张小幅改动;
以JavaScript创造者Brendan Eich为首的Mozilla公司,则坚持当前的草案。

2008年7月ECMAScript 4.0发布前被废弃

由于对于下一个版本应该包括哪些功能,各方分歧太大,争论过于激进,ECMA开会决定,中止ECMAScript
4.0的开发(即废除了这个版本)。

将其中涉及现有功能改善的一小部分,发布为ECMAScript3.1,而将其他激进的设想扩大范围,放入以后的版本,由于会议的气氛,该版本的项目代号起名为Harmony(和谐)。

会后不久,ECMAScript 3.1就改名为ECMAScript 5。


Ecma第39号技术委员会 (TC39)

是一组开发ECMA-262标准规范的人(Brendan Eich和其他一些人)。

 

The development of the ECMAScript Language Specification started in
November 1996. The first edition of this Ecma Standard was adopted by
the Ecma General Assembly of June 1997.

ECMAScript 5

2009年12月发布:

ECMAScript 5.0版发布:

Harmony项目则一分为二,
一些较为可行的设想定名为JavaScript.next继续开发,后来演变成ECMAScript
6;
一些不是很成熟的设想,则被视为JavaScript.next.next,在更远的将来再考虑推出。

TC39的总体考虑是,ECMAScript5与ECMAScript3基本保持兼容,较大的语法修正和新功能加入,将由JavaScript.next完成。
(当时,JavaScript.next指的是ECMAScript 6。第六版发布以后,将指ECMAScript
7)
该版本力求澄清第3版中的歧义,并添加了新的功能。

新功能包括:原生JSON对象、继承的方法、高级属性的定义以及引入严格模式。

2011年6月发布:

ECMAscript 5.1版发布:

并且成为ISO国际标准(ISO/IEC16262:2011)。到了2012年底,所有主要浏览器都支持ECMAScript
5.1版的全部功能


历史

ECMAScript语言规范的发展始于1996年11月,第一版Ecma标准于1997年6月被Ecma
General Assembly采纳。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

相关文章