ECMAscript v.s. Javascript

來源:互聯網
上載者:User

標籤:行編輯   資料   分代   擴充   放棄   相容性   dom   html   服務   

ECMAscript是一種中性的語言,中性表示與所處環境(宿主環境)無關(用戶端/伺服器/瀏覽器),它僅僅是一個純粹意義上的語言。

ECMAscript-262定義了這門語言的基礎,或者說規則(比如說這門語言文法,裡面有什麼基礎類型,類型間如何轉換,變數行為,函數行為),就像定義了一個介面。

如何?這些規則就是宿主環境的事情了,當然宿主環境不僅要實現定義的規則,也會用這些規則做一些特定的事情,這些事情是沒有定義在ECMAscript中的擴充。

比如說Web瀏覽器中的Javascript:

Javascript = ECMAscript + DOM + BOM

  • ECMAscript:語言核心
  • DOM:文件物件模型 (操作HTML頁面內容)
  • BOM:瀏覽器物件模型 (操作瀏覽器行為)

除了Javascript,還有其他宿主環境也實現了ECMAscript,比如Adobe的Actionscript。(語言定義出來是寫詩歌還是小說?)

題外話:如何定義規則不是件容易的事情,特別當這個規則是一門語言,這些規則要互相呼應,不能自相矛盾,規則定義太強會失去靈活性,定義太弱會不嚴謹不安全,這些都是直接影響到語言的發展和未來,如何把握這個度就是一門藝術。

 

版本

  • ECMAscript v1:僅僅是Netscape的Javascript1.1除去瀏覽器部分代碼。
  • ECAMScript v2:僅僅是對第一版進行編輯加工,不會作為相容性的標準。
  • ECAMScript v3:對標準第一次真正的修改,字串處理,錯誤定義,數值輸出,Regex,控制語句,異常處理,這才成為一門真正的語言。
  • ECAMScript v4:基本上定義了一門新的語言,強型別,新語句,新資料結構,真正的類,經典繼承,資料互動方式。
  • ECAMScript v3.1:組委會覺得4改動太大!提出了3.1的替代建議,4沒有發布就放棄了
  • ECAMScript v5: 澄清3中已知的歧義,添加新功能:JSON對象,繼承的方法,進階屬性定義,strict 模式。

目前瀏覽器中的Javascript都能相容v5(IE9,Firefox4,Chrome,Safari)

ECMAscript v.s. Javascript

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.