ECMAScript 是一种由Ecma国际 (前身为欧洲计算机制造商协会 )通过ECMA-262标准化的脚本 程序设计语言 。这种语言在万维网 上应用广泛,它往往被称为JavaScript 或JScript ,但实际上后两者是ECMA-262标准的实现和扩展。
1995年12月升阳公司 与网景通讯公司 一起引入了JavaScript。1996年3月,网景通讯公司发表了支持JavaScript的网景导航者 2.0。由于JavaScript作为网页的客户端脚本语言非常成功,微软 于1996年8月引入了Internet Explorer 3.0,这个软件支持一个“约”与JavaScript相容的JScript。
1996年11月网景通讯公司将JavaScript提交给欧洲计算机制造商协会进行标准化。ECMA-262的第一个版本于1997年6月被Ecma组织采纳。
ECMAScript是由ECMA-262标准化的脚本语言的名称。JavaScript和JScript与ECMAScript相容,但包含超出ECMAScript的功能。
本章节需要扩充 (2014年8月24日)
至今为止有四个ECMA-262版本发表,代號「Harmony 」版本正在工作中。
版本
发表日期
与前版本的差异
1
1997年6月
首版
2
1998年6月
格式修正,以使得其形式与ISO/IEC16262国际标准一致
3
1999年12月
强大的正则表达式,更好的词法作用域链处理,新的控制指令,异常处理,错误定义更加明确,数据输出的格式化及其它改变
4
放棄
由於關於語言的複雜性出現分歧,第4版本被放棄,其中的部分成為了第5版本及Harmony的基礎。
5
2009年12月[1]
新增「嚴格模式(strict mode)」,一個子集用作提供更徹底的錯誤檢查,以避免結構出錯。澄清了許多第3版本的模糊規範,and accommodates behaviour of real-world implementations that differed consistently from that specification。增加了部分新功能,如getters及setters,支持JSON 以及在物件屬性上更完整的反射 。[2] [3] [4] [5]
Harmony
正在工作中
多個新的概念和語言特性 — 參考JavaScript#Features 。ECMAScript Harmony將會以「ECMAScript 6」發佈。
2004年6月Ecma组织发表了ECMA-357标准,它是ECMAScript的一个扩延,也被称为E4X (ECMAScript for XML)。
许多程序,尤其是网页浏览器 支持ECMAScript。浏览器中的ECMAScript实现添加了与文档对象模型 的接口,可以通过脚本改变网页的内容、结构和样式。
使用的應用程式
方言
相应ECMAScript版本
Mozilla Firefox ,Gecko 排版引擎 ,SpiderMonkey 及Rhino [d 1]
JavaScript 1.8.1[d 2]
ECMA-262, 第五版
Google Chrome , V8 排版引擎
JavaScript[d 2]
ECMA-262, 第五版[d 3]
Internet Explorer , Trident 排版引擎
JScript 9.0
ECMA-262, 第五版[d 4]
Opera
ECMAScript[d 5]
ECMA-262, 第五版[d 6]
KHTML 排版引擎, KDE Konqueror 及蘋果公司 Safari [d 7]
JavaScript[d 2]
ECMA-262, 第三版
Appweb Web Server , Samba 4
Ejscript 0.9.9
ECMA-262, 第三版[d 8]
Microsoft .NET Framework
JScript .NET 8.0
ECMA-262, 第三版[d 9]
Adobe Flash 及Adobe Flex
ActionScript 3
ECMA-262, 第三版[d 10]
Adobe Acrobat
JavaScript 1.7[d 11]
ECMA-262, 第三版
通用腳本語言
DMDScript 1.15
ECMA-262
OpenLaszlo平台
JavaScript[d 12]
ECMA-262, 第三版[d 13]
CriScript , 遊戲平台的JScript
CriScript 0.91.0
ECMA-262, 第三版
iCab
InScript 3.22 (放棄)
ECMA-262, 第三版
Max/MSP
JavaScript 1.5[d 2]
ECMA-262, 第三版
ANT Galio 3
JavaScript 1.5[d 2] [d 14]
ECMA-262, 第三版
KDE
QtScript
ECMA-262, 第三版
Caja
ECMA-262, 第三版[d 15]
Objective-J
ECMA-262, 第三版
WMLScript
ECMA-262, 第三版
编译器生成的JavaScript应用程序
TypeScript
ECMA-262,第三版
^ Mozilla能透過SpiderMonkey 中的C語言 及Rhino 中Java ),在部分第三方軟件,包括Yahoo! Widgets (Konfabulator)及Macintosh系統級的腳本語言實現JavaScript OSA .
^ 2.0 2.1 2.2 2.3 2.4 Mozilla官方版本的JavaScript.。Most non-Mozilla implementations claiming JavaScript "compliance" do not actually support most JavaScript extensions; rather, they target ECMA-262, 第三版.
^ V8實現ECMAScript在ECMA-262,第三版: V8 JavaScript Engine .
^ Internet Explorer 9 已通过JScript 9.0实现对ECMA-262,第五版的支持, 详见JScript 条目.
^ Opera 所落實的 implementation 包括了部分 JavaScript 及 JScript 的擴展: ECMAScript support in Opera Presto 2.10
^ 完整的 ECMAScript 5.1 支援,自從 Opera 11.51 以後的版本: Full ECMAScript (JavaScript) 5.1 support .
^ Safari 使用基於KDE KJS 的JavaScriptCore 函式庫。
^ This implementation asserts to support some extensions proposed in drafts of ECMAScript edition 4 (and now ECMAScript Harmony): Ejscript Overview .
^ 微軟聱稱,JScript 8.0支持"幾乎所有ECMAScript第三版的特徵",但沒有列出不支持的功能。
^ 除了支ECMA-262版本三以外,ActionScript 3同時支持ECMAScript版本四的擴展提議草案: The Kiwi Project: AS3 language 101 for C/C++ coders .
^ Adobe Acrobat 9.0使用SpiderMonkey 1.7 排版引擎: JavaScript for Acrobat API Reference
^ OpenLaszlo both uses an ECMAScript dialect as noted in the Developer's Guide: Appendix B: ECMAScript and can compile down to JavaScript targeted for the browser (the DHTML target).
^ As of version 4, OpenLaszlo implements standard ECMAScript edition 3 with some extensions proposed in drafts of ECMAScript edition 4: OpenLaszlo 4 .
^ ANT Galio Browser 要求支持JavaScript 1.5
^ Caja模擬ECMAScript版本五當中的嚴格模式。
對應版本 [ 编辑 ]
以下表格中的数据基于[1] 和[2] 。
JavaScript
JScript
ECMAScript
1.0 (Netscape 2.0, 1996年8月)
1.0 (IE 3.0 - 早期版本, 1996年8月)
1.1 (Netscape 3.0, 1996年8月)
2.0 (IE 3.0 - 後期版本, 1997年1月)
1.2 (Netscape 4.0-4.05, 1997年6月)
1.3 (Netscape 4.06-4.7x, 1998年10月)
3.0 (IE 4.0, 1997年10月)
第一版 (1997年6月) / 第二版 (1998年6月)
1.4 (只有Netscape Server)
4.0 (Visual Studio 6, 沒有IE發佈)
5.0 (IE 5.0, 1999伴月)
5.1 (IE 5.01)
1.5 (Netscape 6.0, 2000年11月;後期 Netscape及Mozilla 發佈)
5.5 (IE 5.5, 2000年7月)
第三版 (1999年12月)
5.6 (IE 6.0, 2001年10月)
1.6 (Gecko 1.8, Firefox 1.5, 2005年11月)
第三版,新增一些標準的改進: E4X ,額外Array (如Array.prototype.forEach), Array及String generics (JavaScript 1.6的新功能 )
1.7 (Gecko 1.8.1, Firefox 2, 2006年10月)
第三版新增Python generators及array comprehensions ([a*a for (a in iter)]), block scope with let, destructuring assignment (var [a,b]=[1,2])(JavaScript 1.7的新功能 )
1.8 (Gecko 1.9, Firefox 3, 2008年6月)
Edition 3 plus all JavaScript 1.7 enhancements, plus expression closures (function(x) x * x), generator expressions(JavaScript 1.8的新功能)expression closures (function(x) x * x), generator expressions(JavaScript 1.8的新功能 )
JScript .NET (ASP.NET ; 沒有IE發佈)
(JScript .NET is said to have been designed with the participation of other Ecma members[6] )
JavaScript 2.0 (工作中)
Harmony (工作中)
參考文獻 [ 编辑 ]
外部鏈結 [ 编辑 ]
網頁技術與標準
文档呈现语言
样式格式描述语言
动态网页技术
客户端交互技术
客户端脚本语言
标识定位语言
文档纲要语言
ECMAScript
语言
引擎列表
框架及函式庫
代表人物
其他