ECMAScript
ECMAScript
ECMAScript是一種由Ecma國際(前身為歐洲計算機製造商協會,英文名稱是European Computer Manufacturers Association)通過ECMA-262標準化的腳本程序設計語言。這種語言在萬維網上應用廣泛,它往往被稱為JavaScript或JScript,但實際上后兩者是ECMA-262標準的實現和擴展。
[ek - ma - script]
讀音來自 Professional JavaScript for Web Developers 2nd Edition
原文:ECMAScript (often pronounced as “ ek - ma - script “ )
1998年6月,ECMAScript 2.0版發布。
1999年12月,ECMAScript 3.0版發布,成為JavaScript的通行標準,得到了廣泛支持。
2007年10月,ECMAScript 4.0版草案發布,對3.0版做了大幅升級,預計次年8月發布正式版本。草案發布后,由於4.0版的目標過於激進,各方對於是否通過這個標準,發生了嚴重分歧。以Yahoo、Microsoft、Google為首的大公司,反對JavaScript的大幅升級,主張小幅改動;以JavaScript創造者Brendan Eich為首的Mozilla公司,則堅持當前的草案。
2008年7月,由於對於下一個版本應該包括哪些功能,各方分歧太大,爭論過於激進,ECMA開會決定,中止ECMAScript 4.0的開發,將其中涉及現有功能改善的一小部分,發布為ECMAScript 3.1,而將其他激進的設想擴大範圍,放入以後的版本,由於會議的氣氛,該版本的項目代號起名為Harmony(和諧)。會後不久,ECMAScript 3.1就改名為ECMAScript 5。
2009年12月,ECMAScript 5.0版正式發布。Harmony項目則一分為二,一些較為可行的設想定名為JavaScript.next繼續開發,後來演變成ECMAScript 6;一些不是很成熟的設想,則被視為JavaScript.next.next,在更遠的將來再考慮推出。
2011年6月,ECMAscript 5.1版發布,並且成為ISO國際標準(ISO/IEC 16262:2011)。
2013年3月,ECMAScript 6草案凍結,不再添加新功能。新的功能設想將被放到ECMAScript 7。
2013年12月,ECMAScript 6草案發布。然後是12個月的討論期,聽取各方反饋。
2015年6月17日,ECMAScript 6發布正式版本,即ECMAScript 2015。
ECMA的第39號技術專家委員會(Technical Committee 39,簡稱TC39)負責制訂ECMAScript標準,成員包括Microsoft、Mozilla、Google等大公司。TC39的總體考慮是,ES5與ES3基本保持兼容,較大的語法修正和新功能加入,將由JavaScript.next完成。
至今為止有五個ECMA-262版本。
v1 1997年06月 首版
v2 1998年06月 格式修正,以使得其形式與ISO/IEC16262國際標準一致
v3 1999年12月 強大的正則表達式,更好的文字鏈處理,新的控制指令,異常處理,錯誤定義更加明確,數輸出的格式化及其它改變
v4 未完成...可能更明確的類的定義,命名空間等等...
* 2004年6月歐洲計算機製造商協會發表了ECMA-357標準,它是ECMAScript的一個擴延,它也被稱為E4X(ECMAScript for XML)。
v5 2009年12月發布
ECMA-262的關鍵字
ECMA-262定義了ECMAScript支持的一套關鍵字,這些關鍵字標識了ECMAScript語句的開頭和/或結尾。根據規定,關鍵字是保留的,不能用作變數名或函數名。下面是ECMAScript關鍵字的完整列表:
break else new var typeof
case finally return void
catch for switch while
default if throw delete
in try do instanceof
如果把關鍵字用作變數名或函數名,可能得到諸如“Indetifier expected”(應該有標識符)這樣的錯誤信息。
ECMA-262的保留字
ECMAScript定義了一套保留字,保留字在某種意義上是為了將來的而保留的單詞。因此,保留字不能被用作變數名或函數名。ECMA-262第3版中保留字的完整列表如下:
abstract enum int short
byte extends long super char final
native synchronized class float package
throws const goto private transient debugger
implements protected volatile double
import public
如果將保留字用作變數名或函數名,那麼除非將來的瀏覽器實現了該保留字,否則很可能收不到任何錯誤消息。當瀏覽器將其實現后,該單詞被看作關鍵字,如此將出現關鍵字錯誤。
1995年Netscape公司發布的Netscape Navigator 2.0中,發布了與Sun聯合開發的JavaScript 1.0並且大獲成功,並且隨後的3.0版本中發布了JavaScript1.1,恰巧這時微軟進軍瀏覽器市場,IE 3.0搭載了一個JavaScript的克隆版-JScript,再加上Cenvi的ScriptEase(也是一種客戶端腳本語言),導致了三種不同版本的客戶端腳本語言同時存在。為了建立語言的標準化,1997年JavaScript 1.1作為草案提交給歐洲計算機製造商協會(ECMA),第三十九技術委員會(TC39)被委派來“標準化一個通用的,跨平台的,中立於廠商的腳本語言的語法和語意標準”。最後在Netscape、Sun、微軟、Borland等公司的參與下制訂了ECMA-262,該標準定義了叫做ECMAScript的全新腳本語言。
從此以後的Javscript,JScript,ActionScript等腳本語言都是基於ECMAScript標準實現的。
所以,ECMAScript實際上是一種腳本在語法和語義上的標準。實際上JavaScript是由ECMAScript,DOM和BOM三者組成的。所以說,在JavaScript,JScript和ActionScript中聲明變數,操作數組等語法完全一樣,因為它們都是ECMAScript。但是在操作瀏覽器對象等方面又有各自獨特的方法,這些都是各自語言的擴展。