JavaScript和TypeScript的對比
注:參考https://juejin.im/entry/5a52ed336fb9a01cbd586f9f做的筆記
概要介紹
JavaScript
JavaScript是一種基於客戶端瀏覽器的,基於對象、事件驅動式的腳本語言。稍提一下,JavaScript和Java沒有任何關系,兩者相當於雷峰塔和雷鋒的關系。
- JavaScript是一種腳本編寫語言,無需編譯,只要嵌入HTML代碼中,就能在瀏覽器中加載執行。
- JavaScript是一種基於對象的語言,可以創建對象同時使用現有對象。但是JavaScript並不支持面向對象語言所承載的繼承和重載功能。
- JavaScript使用的變量是弱類型。
- JavaScript語言較為安全,僅在瀏覽器端執行,不會訪問本地硬盤數據。
- JavaScript語言具有動態性。JavaScript是事件驅動的,只根據用戶的操作做出相應的反應處理。
- JavaScript只依賴於瀏覽器,與操作系統的因素無關。因此JavaScript是一種跨平台的語言。
- JavaScript兼容性極好,能夠與其他技術(如XML、REST API等)一起使用
TypeScript
TypeScript是JavaScript類型的超類,它可以編譯成純JavaScript。TypeScript可以在任何瀏覽器、任何計算機和任何操作系統上運行,並且是開源的。
- TypeScript是Microsoft推出的開源語言,使用Apache授權協議
- TypeScript增加了靜態類型、類、模塊、接口和類型注解
- TypeScript可用於開發大型的應用
- TypeScript易學易於理解
JavaScript和TypeScript的主要差異
TypeScript可以使用JavaScript中的所有代碼和編程概念,TypeScript是為了使JavaScript的開發變得更加容易而創建的。
- TypeScript從核心語言方面和類概念方面的模塑方面對JavaScript對象模型進行擴展。
- JavaScript代碼可以在無需任何修改的情況下與TypeScript一同工作,同時可以使用編譯器將TypeScript代碼轉換為JavaScript。
- TypeScript通過類型注解提供編譯時的靜態類型檢查。
- TypeScript中的數據要求帶有明確的類型,JavaScript不要求。
- TypeScript提供了缺省參數值。
- TypeScript引入了JavaScript中沒有的“類”概念。
- TypeScript中引入模塊的概念,可以把聲明、數據、函數和類封裝在模塊中。
TypeScript的優勢
- 靜態類型化,允許開發人員編寫更健壯的代碼並對其進行維護。
- 大型的開發項目,使用TypeScript工具來進行重構更容易、便捷。
- 類型安全,在編碼期間檢測錯誤的功能,而不是在編譯項目時檢測錯誤。
- 干凈的ECMAScript6代碼,自動完成和動態輸入等因素有助於提高開發人員的工作效率。
JavaScript的優勢
- JavaScript的開發者社區仍然巨大而活躍,在社區可以很容易找到大量成熟的開發項目和可用資源。
- JavaScript語言發展較早,也較為成熟。
- TypeScript代碼需要被編譯(成JavaScript)
- 不需要注釋
- JavaScript的靈活性更高
靈活選擇
在開發大型開發項目時,使用TypeScript更加合適。如果有一個相對較小的編碼項目,似乎沒有必要使用TypeScript,只需使用JavaScript。
