一文搞清JS、ES、TS的關係

前言

相信不少前端小夥伴都對ECMAScript,JavaScript,TypeScript這幾個詞至關熟悉,能夠說是咱們工做的核心技術,但若是具體問起來這三者究竟是什麼關係,有什麼區別,恐怕不少小夥伴和小黑同樣,很難對其進行準確的描述,因此小黑決定和你們一塊兒完全搞明白他們的關係與區別前端

image

三者關係

ECMAScript

ECMAScript,即ECMA-262定義的語言,並不侷限於Web瀏覽器。事實上,這門語言沒有輸入和輸出之類的方法。git

ECMA-262將這門語言做爲一個基準來定義,以便在它之上再構建更穩健的腳本語言。若是不涉及瀏覽器的話,ECMA-262在基本的層面,它描述這門語言的以下部分:github

  • 語法
  • 類型
  • 語句
  • 關鍵字
  • 保留字
  • 操做符
  • 全局對象

ECMAScript只是對實現這個規範描述的全部方面的一門語言的稱呼,其實也能夠理解爲一個語言標準,JavaScript實現了ECMAScript,而Adobe ActionScript一樣也實現了ECMAScript,只要你想,也能夠構建一門腳本語言如XXScript來實現ECMAScript瀏覽器

JavaScript

雖然JavaScriptECMAScript在平時使用時基本上是同義詞,但JavaScript遠遠不限於ECMA-262所定義的哪些部分。完整的JavaScript實現包含如下幾個部分:spa

  • 核心(ECMAScript)
  • 文檔對象模型(DOM)
  • 瀏覽器對象模型(BOM)

image

能夠理解爲ECMAScript是造成JavaScript語言基礎的腳本語言,再加上DOMBOM構成了完整的JavaScript實現3d

TypeScript

TypeScriptJavaScript的超集,添加了可選的靜態類型系統、不少還沒有正式發佈的ECMAScript新特性(如裝飾器)等,最終會被編譯爲JavaScript代碼。code

小結

若是用三句話歸納他們的關係,那就是,ECMAScript是標準語言,JavaScriptECMAScript的實現,TypeScriptJavaScript的超集。對象

小黑水平有限,若有不足與錯誤之處,敬請賜教!


本篇文章由一文多發平臺ArtiPub自動發佈blog

相關文章
相關標籤/搜索