前言
相信很多前端小伙伴都對ECMAScript
,JavaScript
,TypeScript
這幾個詞相當熟悉唉韭,可以說是我們工作的核心技術,但如果具體問起來這三者到底是什么關系犯犁,有什么區(qū)別纽哥,恐怕很多小伙伴和小黑一樣,很難對其進行準確的描述栖秕,所以小黑決定和大家一起徹底搞明白他們的關系與區(qū)別
三者關系
ECMAScript
ECMAScript
春塌,即ECMA-262
定義的語言,并不局限于Web瀏覽器簇捍。事實上只壳,這門語言沒有輸入和輸出之類的方法。
ECMA-262
將這門語言作為一個基準來定義暑塑,以便在它之上再構建更穩(wěn)健的腳本語言吼句。如果不涉及瀏覽器的話,ECMA-262
在基本的層面事格,它描述這門語言的如下部分:
- 語法
- 類型
- 語句
- 關鍵字
- 保留字
- 操作符
- 全局對象
ECMAScript
只是對實現這個規(guī)范描述的所有方面的一門語言的稱呼惕艳,其實也可以理解為一個語言標準,JavaScript
實現了ECMAScript
驹愚,而Adobe ActionScript
同樣也實現了ECMAScript
远搪,只要你想,也可以構建一門腳本語言如XXScript
來實現ECMAScript
JavaScript
雖然JavaScript
和ECMAScript
在平時使用時基本上是同義詞逢捺,但JavaScript遠遠不限于ECMA-262所定義的哪些部分谁鳍。完整的JavaScript實現包含以下幾個部分:
- 核心(ECMAScript)
- 文檔對象模型(DOM)
- 瀏覽器對象模型(BOM)
可以理解為ECMAScript
是形成JavaScript
語言基礎的腳本語言,再加上DOM
和BOM
構成了完整的JavaScript
實現
TypeScript
TypeScript
是JavaScript
的超集劫瞳,添加了可選的靜態(tài)類型系統(tǒng)倘潜、很多尚未正式發(fā)布的ECMAScript
新特性(如裝飾器)等,最終會被編譯為JavaScript
代碼。
小結
如果用三句話概括他們的關系志于,那就是涮因,ECMAScript
是標準語言,JavaScript
是ECMAScript
的實現伺绽,TypeScript
是JavaScript
的超集养泡。
小黑水平有限,如有不足與錯誤之處憔恳,敬請賜教瓤荔!