對比Javascript和TypeScript

柳菁發表於2018-09-14

JavaScript

特點:

1. JavaScript是解釋性指令碼語言,不需要編譯,可以直接在瀏覽器中解釋執行

2. 是基於物件的語言,可以建立物件並使用現有物件

3. 是弱型別、動態語言,基於物件和事件驅動

4. 較安全,跨平臺,僅在瀏覽器端執行,不會訪問本地硬碟資料

優點:

1. 發展較早,使用人數多

2. 無需編譯,可以直接執行

3. 沒有類的概念,開發更為靈活


TypeScript

ts是物件導向的程式語言,是JavaScript的超集,包含JavaScript所有元素,可以載入Js執行,擴充套件了Js的語法。TypeScript支援on-the-fly編譯,即寫一句ts就立即得到對應的js,不需要完整的語句寫完,就可以根據上下文推導生成對應的、不完整的js程式碼。編譯的目的碼是Es6,若有es6新特性問題時會向下相容es5,但對於各個瀏覽器自行對js做的擴充,ts不保證予以支援。

特點:

1. 屬於開源語言,使用Apache授權協議

2. 增加了靜態型別、類、模組、介面和型別註解

3. 所有的ts宣告(*.d.ts)都不會聲稱對應的js,因為js物件模型中的宣告是可選的。

優點:

1.靜態輸入,可以在開發時就發現錯誤,使得提高程式碼質量

2. 大型專案開發、多人開發時,更為安全、容易、更好協作,降低亂碼和錯誤的機會

3. 程式碼編譯器建立優化的JavaScript,在解釋執行時,鑑於瀏覽器的執行原理,可以減少無型別變數解釋時間

4. 函式預設引數值:可選(xxx?: yyy)和預設引數(沒有引數傳入是,使用預設值xxx = yyy)


JavaScript和TypeScript的主要差異

1. JavaScript可以與TypeScript共同使用,TypeScript可以使用編譯器轉換成JavaScript

2. TypeScript在擴充套件了JavaScript的類概念及核心語言方面,如TypeScript可以使用型別和介面等概念既描述正在使用的資料,又能快速檢測錯誤

3. TypeScript通過型別註解提供編譯時的靜態型別檢查

4. TypeScript引入模組module的概念,可以把宣告、資料、函式和類封裝在模組中

5. TypeScript需要被編譯成JavaScript,才能在瀏覽器執行

6. TypeScript編譯時支援有限的函式過載(overload),js不支援過載

ps:求監督,求審查~~


相關文章