TS系列篇--TypeScript的誕生

這是我參與8月更文挑戰的第3天,活動詳情查看:8月更文挑戰javascript

"不畏懼,不將就,將來的日子好好努力"——你們好!我是小芝麻😄html

1、JS的優缺點

上一篇芝麻同窗已經花費整整一篇來闡述了JS的產生背景,因此JS的優缺點也不言而喻了。java

一、JS的優勢

  • 1)JS是一種具備函數優先的輕量級,解釋型或即時編譯型的編程語言(代碼不進行預編譯)。
    • 是基於瀏覽器內核爲html添加生命力的腳本語言;
  • 2)弱類型腳本語言:(數據類型能夠被忽略的語言,一個變量能夠賦不一樣數據類型的值);
    • 由於弱類型,因此更加靈活,更易於學習,開發者能夠更注重邏輯,不用花費太多時間關心語法的問題;
  • 3)跨平臺特性:
    • 在絕大多數瀏覽器的支持下,能夠在多種平臺下運行(如Windows、Linux、Mac、Android、iOS等)。
  • 4)單線程,事件驅動
    • JavaScript對用戶的響應,是以事件驅動的方式進行的。在網頁(Web Page)中執行了某種操做所產生的動做,被稱爲「事件」(Event)。例如按下鼠標、移動窗口、選擇菜單等均可以被視爲事件。當事件發生後,可能會引發相應的事件響應,執行某些對應的腳本,這種機制被稱爲「事件驅動」。
  • 5)安全性:
    • JavaScript是一種安全性語言,它不容許訪問本地的硬盤,並不能將數據存入到服務器上,不容許對網絡文檔進行修改和刪除,只能經過瀏覽器實現信息瀏覽或動態交互。從而有效地防止數據的丟失。

二、JS的缺點

畢竟開發週期僅有10天,不少設計考慮的不夠周到,並且在網景與IE瀏覽器交鋒中誕生,對於老版本的IE瀏覽器確定不會很友好。編程

上面咱們羅列了不少JS的優勢,這些優勢也一樣是他的缺點瀏覽器

  • 1)JS只有在運行時,纔會拋出錯誤(很容易埋下安全隱患)
    • 任何的拼寫錯誤,都不會提示錯誤;
    • 運行時報的錯,指向也未必是錯誤源頭;
  • 2)由於是弱類型語言,因此維護成本比較大,不適合開發大型程序
  • 3)JS 沒有類型的概念,聲明的變量是動態類型, 雖然靈活易用但不易管理,例如:
    • 加號做爲運算符,有兩個含義,能夠表示數字與數字的和,也能夠表示字符與字符的鏈接。

有關詳細的JS設計的缺點推薦你們能夠看下阮一峯老師的Javascript的10個設計缺陷安全

2、TS的誕生

既然JS有那麼多缺點,那爲啥不用新語言替換掉他呢?服務器

  • 這個問題咱們在上一篇已經解釋過了,微軟曾經試圖用JScript替換JS,但最終迫於標準的壓力仍是選擇了放棄
  • 因爲 IE 的市場份額被谷歌 Chrome 攫取,微軟在 2015 年使用開源 Chakra JavaScript 引擎打造了全新的 Edge 瀏覽器。可是到了這個時候,專一於 Web 標準,具有功能強大的 V8 JavaScript 引擎的谷歌Chrome 顯然已經贏得了瀏覽器大戰。markdown

  • 瀏覽器大戰結束了,谷歌構建了 ChromeHTML5 也在崛起。谷歌還構建了一個很是高效的 JavaScript 引擎,JavaScript 的效率大大提升了。網絡

  • 那時,不少開發人員已開始爲瀏覽器構建龐大的 JavaScript 應用程序,逐漸的發現JS在大型項目上的一些缺點(例如:缺少諸如模塊、類等關鍵功能。並且,缺少一種經過程序中的規則來創建秩序的類型系統)編程語言

咱們還須要使用JS,那有什麼可以幫助咱們規避JS的缺點呢?

  • TypeScript 出現以前,微軟打算將一種稱爲 Script Sharp 的工具轉變爲產品。可是 Hejlsberg 不肯定這些開發人員是否願意用另外一種語言編寫JavaScript代碼。因此他開始想解決 JavaScript 的實際問題 關鍵是要向語言中添加類型系統,並且還不能影響那些讓 JavaScript 如此流行的東西。

  • Hejlsberg 決定創建一個「可擦除類型系統」,這個組件使 TypeScript 成爲 JavaScript 的超集。在編譯時,TypeScript 會刪除全部類型並將代碼還原回 JavaScript

從某種意義上說,它是一個 type system,只存在於開發人員編程期間,在運行時就會消失。不過在運行的時候,它給你帶來的只有好處,沒有任何缺點。

TypeScript 最初是個微軟內部項目,叫 Strada,致力於提高大型 JS 項目。

  • 2010 年開始開發,
  • 2012 年 10 月發佈了第一個開源版本,持續迭代至今

思惟導圖

默認文件1628253236553.png

參考文獻

[1].TypeScript之父:JS不是競爭對手,曾在害怕開源的微軟文化中艱難求生

相關文章
相關標籤/搜索