-
Ecma是國際計算機(jī)制造商協(xié)會。在1994年之前,全名為歐洲計算機(jī)制造商協(xié)會(European Computer Manufacturers Association),后來更名為Ecma國際(Ecma International) -
ECMAScript是Ecma組織制定的標(biāo)準(zhǔn)化腳本語言,JScript和JavaScript語言是參考這個標(biāo)準(zhǔn)來實(shí)現(xiàn)的。 - ECMAScript標(biāo)準(zhǔn)也是有不同的版本:早在2009年12月份ECMA就發(fā)布了
ECMAScript5,然后在2015年6月份發(fā)布了ECMAScript6(官方稱ECMAScript2015)。 - ECMAScript6的目標(biāo)是使得JavaScript語言可以用來編寫大型的復(fù)雜的應(yīng)用程序,于是增添了許多特性,例如:模塊和類,Maps、Sets、Promises、生成器(Generators)等。
- 盡管ECMAScript6做了大量的更新,但標(biāo)準(zhǔn)化委員會仍然決定要兼容以前的版本,但隨之而來的問題是,目前主流的宿主環(huán)境(無論是瀏覽器環(huán)境還是服務(wù)器環(huán)境)不能完全支持ES6,導(dǎo)致了開發(fā)者真正要使用ECMAScript6時,需要將ECMAScript6代碼進(jìn)行轉(zhuǎn)譯。
- 而
TypeScript是一種微軟開源的編程語言。由于JavaScript是弱類型的,TypeScript為JavaScript擴(kuò)展類和模塊的概念。正是由于TypeScript最大的特點(diǎn)是類型化,因此才叫做TypeScript。 - TypeScript支持ECMAScript6標(biāo)準(zhǔn)(實(shí)際上相當(dāng)于是對ECMAScript6的提前實(shí)現(xiàn)),并且能將代碼根據(jù)需求轉(zhuǎn)換為 ES 3 / 5 / 6。這意味著開發(fā)者可以通過TypeScript使用最新的ECMAScript特性,無需再考慮兼容性的問題。
- 和TypeScript 相似的工具語言還有很多,主要分為兩個陣營:
- 一個是類似 Babel 的陣營,堅(jiān)持JavaScript 的語法風(fēng)格編寫,為開發(fā)者提供最新的 ECMAScript 特性;
- 另一個則是Coffeescript、Clojure、Dart等的陣營,它們的語法與 JavaScript 迥然不同,但最終會編譯為JavaScript;
- Dart、CoffeScript和TypeScript對比和思考:
-
CoffeeScript從2009年出現(xiàn)到現(xiàn)在,已十分成熟。從語法上看,CoffeeScript更像Ruby,寫起來比較隨意,而TypeScript更接近于C#。然而TypeScript正在超越CoffeeScript,成為大家的首選。
CoffeeScript官網(wǎng) 2016/11/12截圖.png -
TypeScript是通過類似于墊片(Shim)的技術(shù)進(jìn)行代碼轉(zhuǎn)化,生成與現(xiàn)有js完全兼容的代碼,從本質(zhì)上講它就是JavaScript。另外,由于TypeScript 是微軟的產(chǎn)品,所以在Visual Studio工具上有良好的支持。
TypeScript官網(wǎng) 2016/11/12截圖.png -
Dart最初是由 Google 的 Chrome V8 團(tuán)隊(duì)打造。與TypeScript編譯JavaScript代碼不同,Dart是跳過翻譯的步驟,直接在瀏覽器里面嵌入一個 Dart 解釋引擎與 V8 并行。相比起TS和CS,使用Dart的人相對較少。
Dart官網(wǎng) 2016/11/12截圖
-
- 最后,原生Javascript該怎么學(xué)還怎么學(xué),你不要指望通過TS or CS能完全替代它。畢竟要先學(xué)會跑,之后再討論穿那種鞋更爽。


