[譯]ECMAScript:ES.next和ES6以及ES Harmony之間的區別


原文:http://www.2ality.com/2011/06/ecmascript.html

本文解釋了JavaScript和ECMAScript之間的區別.還解釋了ECMAScript.next和ECMAScript 6以及ECMAScript Harmony之間的區別. 

部分ECMAScript術語

你應該知道下面這些與JavaScript標准化相關的術語.

  • ECMAScript: Sun(現在的Oracle)公司持有着“Java”和“JavaScript”的商標.這就讓微軟不得不把自己的JavaScript方言稱之為“JScript”.然后,在這門語言被標准化的時候,就必須使用一個與二者都不同的名字.“ECMAScript”就這樣誕生了,這個名字的來由是因為執行標准化的組織是Ecma國際.通常來說,術語“ECMAScript”和“JavaScript”指的是同一個東西.但如果把JavaScript看成是“Mozilla或其他組織的ECMAScript實現”,那么ECMAScript就是實現JavaScript所依據的標准.術語“ECMAScript”也用來描述語言版本(比如ECMAScript 5).
  • ECMA-262: Ecma國際 (一個標准化組織)創建了ECMA-262規范,這個規范就是ECMAScript語言的官方標准.
  • ECMAScript 5: 如果有人提到ECMAScript 5,那么他指的就是ECMA-262規范的第五版,同時也是當前最新的正式規范.
  • Ecma第39號技術委員會 (TC39): 是一組開發ECMA-262標准規范的人(Brendan Eich和其他一些人).

ECMAScript的歷史

  • ECMAScript 3 (1999年12月).這是目前大部分瀏覽器都支持的ECMAScript版本.該版本引入了很多的新特性,這些特性已經成為該語言不可或缺的一部分:
    [...] 正則表達式,更好的字符串處理,新的控制語句,try/catch異常捕獲,更嚴格的錯誤類型定義,格式化數字輸出以及其他增強特性. [1]
  • ECMAScript 4 (2008年7月被廢棄). ECMAScript 4是作為下一代的JavaScript被開發的,同時有一個用ML寫成的原型.但是,TC39委員會並不完全同意它的一些新特性.為了防止陷入僵局, 委員會2008年7月底會晤,並產生一項協議,協議內容總結為以下四點[2]:
    1. 開發一個增量式更新的ECMAScript (后來成為了ECMAScript 5).
    2. 開發一個重要的新版本規范,要比ECMAScript 4更先進,但會比ECMAScript 3之后的那個版本更新跨度更大.該版本的開發代號被定為Harmony,因為這場會議的的性質就是倡導我們要和諧發展.
    3. ECMAScript 4中引入的一些特性將被丟棄:包,命名空間,早期綁定.
    4. 其他的想法要在成為所有的TC39成員的共識下開發.
    最終:ECMAScript 4的開發者們同意把Harmony做的不要像ECMAScript 4那么激進,其余的TC39成員也表示同意,開發繼續進行.
  • ECMAScript 5 (2009年12月). 此版本帶來了一些標准庫增強,甚至通過引入嚴格模式更新了語言的語義.[3]
  • ECMAScript.next (計划於2013年). 從問世以來,這個版本就顯得有點太過雄心勃勃了,所以它的特性被分成了兩組,第一組是那些將要成為ECMAScript 5下一個版本的特性.這一版本的開發代號稱之為ECMAScript.next,並且很可能成為ECMAScript 6.第二組是Harmony特性,這些特性被認為是准備還不夠充分或者重要程度還不夠,所以不能進入ECMAScript.next.但仍然會進入某個更新的ECMAScript版本中,比如ECMAScript.next.next.當前的目標是在2013年完成ECMAScript.next,在此之前,瀏覽器(主要是火狐)要實現部分規范.

總結

ECMAScript和JavaScript的關系.ECMAScript是語言的規范.而JavaScript是規范的實現,Microsoft的JScript是另外一個實現

即將到來的ECMAScript版本:

  • ECMAScript.next是ECMAScript下一版規范的開發代號(code name).使用這個術語就意味着當前討論的特性可能會也可能不會被加入最終的規范中.
  • ECMAScript 6是ECMAScript.next的實際(最終)名稱.使用這個術語就意味着當前討論的特性一定會被添加在最終的規范中.
  • ECMAScript Harmony是ECMAScript.next的超集,意味着“ECMAScript 5之后的新特性”.這些特性可能會被添加到ECMAScript.next中,也可能被添加到ECMAScript.next.next或者更新的版本中.

參考

  1. ECMAScript - Wikipedia, the free encyclopedia
  2. ECMAScript Harmony (電子郵件歸檔)
  3. What’s new in ECMAScript 5
  4. JavaScript: how it all began
  5. Posts on ECMAScript.next

譯者注

ECMAScript的讀音大概為"艾克馬script"

ECMA國際除了TC39還有很多委員會,他們制定的規范也不只有ECMAScript,還有很多其他的規范,有數據壓縮相關的,有無線通信相關的,屬於ECMAScript的規范只有三個,ECMA-262:我們通常說的ECMAScript就指的這個,還有ECMA-357:E4x,ES262的擴展,只有火狐實現了.還有ECMA-327.

John Resig也有一篇相關的文章,http://ejohn.org/blog/ecmascript-harmony/

我英語渣水平,翻譯不對的地方請一定要指教.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM