相信不少前端小夥伴都對ECMAScript
,JavaScript
,TypeScript
這幾個詞至關熟悉,能夠說是咱們工做的核心技術,但若是具體問起來這三者究竟是什麼關係,有什麼區別,恐怕不少小夥伴和小黑同樣,很難對其進行準確的描述,因此小黑決定和你們一塊兒完全搞明白他們的關係與區別前端
ECMAScript
,即ECMA-262
定義的語言,並不侷限於Web瀏覽器。事實上,這門語言沒有輸入和輸出之類的方法。git
ECMA-262
將這門語言做爲一個基準來定義,以便在它之上再構建更穩健的腳本語言。若是不涉及瀏覽器的話,ECMA-262
在基本的層面,它描述這門語言的以下部分:github
- 語法
- 類型
- 語句
- 關鍵字
- 保留字
- 操做符
- 全局對象
ECMAScript
只是對實現這個規範描述的全部方面的一門語言的稱呼,其實也能夠理解爲一個語言標準,JavaScript
實現了ECMAScript
,而Adobe ActionScript
一樣也實現了ECMAScript
,只要你想,也能夠構建一門腳本語言如XXScript
來實現ECMAScript
瀏覽器
雖然JavaScript
和ECMAScript
在平時使用時基本上是同義詞,但JavaScript遠遠不限於ECMA-262所定義的哪些部分。完整的JavaScript實現包含如下幾個部分:spa
能夠理解爲ECMAScript
是造成JavaScript
語言基礎的腳本語言,再加上DOM
和BOM
構成了完整的JavaScript
實現3d
TypeScript
是JavaScript
的超集,添加了可選的靜態類型系統、不少還沒有正式發佈的ECMAScript
新特性(如裝飾器)等,最終會被編譯爲JavaScript
代碼。code
若是用三句話歸納他們的關係,那就是,ECMAScript
是標準語言,JavaScript
是ECMAScript
的實現,TypeScript
是JavaScript
的超集。對象
小黑水平有限,若有不足與錯誤之處,敬請賜教!
本篇文章由一文多發平臺ArtiPub自動發佈blog