這個題目翻譯自原版標題WTF IS ES6/TYPESCRIPT/ATSCRIPT/BABEL?
,挺好玩的題目。web
因爲官方文檔的JS版本對比TS版本少很是多,我也沒有能力確保把TS搬到JS並保證他的正確性,因此我暫時選擇等待官方的更新。這期間我會找一些Angular2的非官方文檔來繼續學習。
原文地址瀏覽器
對於開發者來講,最難的事情之一就是如何寫現代化JavaScript。如今有ES五、ES6、TypeScript、AtScript、Dart、Babel以及以後的ES7,這個名單還在增長。工具
JavaScript是一個龐大的標準驅動的語言。這意味着有一個委員會來決定JavaScript是什麼樣的,肯定它的最低限的定義,而後瀏覽器廠商來實現。如今(但不會過久了),ES5是JS被最普遍支持的版本。學習
然而,委員會啓動的設計是出了名的慢,因此每個從開發者到瀏覽器廠商都急於使用和實現新的特性,這比委員會的工做要快。spa
在瀏覽器看來,JS有點像(assembly of the web(網頁組件)),意味着它能夠運行更高等級語言編寫的代碼,而後將它「編譯」爲瀏覽器可理解的JS。翻譯
CoffeeScript就偏偏是這樣的,第一個很是成功的更高級的JS語言。一個開發者能夠編寫CoffeeScript,而後編譯工具能夠將它轉變爲第一層的JS語言。設計
這就是咱們如今看到的ES6和其餘(語言)的關係。瀏覽器尚未natively(直接地)實現許多ES6+的特性,而且開開發者們想對JS進行改革。這意味着他們已經開始開發他們的更高等級的JS語言,例如AtScript,TypeScript,和想Babel這樣的工具實現將來JavaScript的特性而且將它編譯爲ES5。code
Dart是Google幾年前建立的實驗性語言。咱們不建議使用Dart做爲取代JS的新特性(原文的話)。orm
ArScript是Google建立的使用新特性擴展JS和TypeScript的實驗性語言,例如annotation和type introspection。它如今已經被拋棄了。對象
TypeScript是Microsoft的JS擴展,提供了強力的類型檢查能力和麪向對象特性。Angular2 和 Ionic2都使用TypeScript。
ES6是JavaScript的下一個版本,它最近才被提出並提過了不少編寫JS的方式。ES7是JS的將來版本,有些已經被更高記得JavaScript語言實現了。
總結
若是你想要開發ES6或ES7,你能夠用Babel,是「下一代JavaScript語言代碼的編譯器」。若是你想用Ionic和Angular,咱們建議你使用TypeScript,它提供了和Babel相似的功能,還有type checking(類型檢查)。