TypeScript 和 JavaScript之間的區(qū)別

引言

近期在寫一篇前后端結(jié)合的Demo舍悯,但是遇到了不小的麻煩。對于前端框架睡雇,發(fā)現(xiàn)知之甚少萌衬。因此,單獨(dú)開個文集專門記錄下前端的那些事它抱。本文集主旨在于熟悉前端框架并快速入手秕豫。我現(xiàn)在是想入手AngularJS和Angular4,因此我們先從腳本語言選擇開始吧观蓄!

正文

TypeScriptJavaScript是目前項目開發(fā)中較為流行的兩種腳本語言混移,我們已經(jīng)熟知 TypeScriptJavaScript的一個超集,但是 TypeScript 與 JavaScript 之間又有什么樣的區(qū)別呢侮穿?在選擇開發(fā)語言時歌径,又該如何抉擇呢?

本文將會深入對比這兩種語言亲茅,討論兩種語言之間的關(guān)聯(lián)和差異回铛,并概述兩種語言各自的優(yōu)勢。

JavaScript 和 TypeScript 的概要介紹

JavaScript

JavaScript 是一種輕量級的解釋性腳本語言克锣,可嵌入到 HTML 頁面中茵肃,在瀏覽器端執(zhí)行,能夠?qū)崿F(xiàn)瀏覽器端豐富的交互功能袭祟,為用戶帶來流暢多樣的用戶體驗验残。

JavaScript 是基于對象和事件驅(qū)動的,無需特定的語言環(huán)境巾乳,只需在支持的瀏覽器上就能運(yùn)行您没。

JavaScript 語言具有以下特點(diǎn):

  • JavaScript 是一種腳本編寫語言,無需編譯胆绊,只要嵌入 HTML 代碼中氨鹏,就能由瀏覽器逐行加載解釋執(zhí)行。

  • JavaScript 是一種基于對象的語言辑舷,可以創(chuàng)建對象同時使用現(xiàn)有對象喻犁。但是 Javascript 并不支持其它面向?qū)ο笳Z言所具有的繼承和重載功能。

  • JavaScript 的語法簡單,使用的變量為弱類型肢础。

  • JavaScript 語言較為安全还栓,僅在瀏覽器端執(zhí)行,不會訪問本地硬盤數(shù)據(jù)传轰。

  • JavaScript 語言具有動態(tài)性剩盒。JavaScript 是事件驅(qū)動的,只根據(jù)用戶的操作做出相應(yīng)的反應(yīng)處理慨蛙。

  • JavaScript 只依賴于瀏覽器辽聊,與操作系統(tǒng)的因素?zé)o關(guān)。因此 JavaScript 是一種跨平臺的語言期贫。

  • JavaScript 兼容性較好跟匆,能夠與其他技術(shù)(如 XML,REST API 等)一起使用通砍。

TypeScript

TypeScript 是 Microsoft 開發(fā)和維護(hù)的一種面向?qū)ο蟮木幊陶Z言玛臂。它是 JavaScript 的超集,包含了 JavaScript 的所有元素封孙,可以載入 JavaScript 代碼運(yùn)行迹冤,并擴(kuò)展了 JavaScript 的語法。

TypeScript 具有以下特點(diǎn):

  • TypeScript 是 Microsoft 推出的開源語言虎忌,使用 Apache 授權(quán)協(xié)議
  • TypeScript 增加了靜態(tài)類型泡徙、類、模塊膜蠢、接口和類型注解
  • TypeScript 可用于開發(fā)大型的應(yīng)用
  • TypeScript 易學(xué)易于理解

JavaScript 和 TypeScript 的主要差異

TypeScript 可以使用 JavaScript 中的所有代碼和編碼概念堪藐,TypeScript 是為了使 JavaScript 的開發(fā)變得更加容易而創(chuàng)建的。例如狡蝶,TypeScript 使用類型和接口等概念來描述正在使用的數(shù)據(jù)庶橱,這使開發(fā)人員能夠快速檢測錯誤并調(diào)試應(yīng)用程序

  • TypeScript 從核心語言方面和類概念的模塑方面對 JavaScript 對象模型進(jìn)行擴(kuò)展贮勃。

  • JavaScript 代碼可以在無需任何修改的情況下與 TypeScript 一同工作贪惹,同時可以使用編譯器將 TypeScript 代碼轉(zhuǎn)換為 JavaScript。

  • TypeScript 通過類型注解提供編譯時的靜態(tài)類型檢查寂嘉。

  • TypeScript 中的數(shù)據(jù)要求帶有明確的類型奏瞬,JavaScript不要求。

  • TypeScript 為函數(shù)提供了缺省參數(shù)值泉孩。

  • TypeScript 引入了 JavaScript 中沒有的“類”概念硼端。

  • TypeScript 中引入了模塊的概念,可以把聲明寓搬、數(shù)據(jù)珍昨、函數(shù)和類封裝在模塊中。

TypeScript 的優(yōu)勢

下面列舉 TypeScript 相比于 JavaScript 的顯著優(yōu)勢:

1. 靜態(tài)輸入
靜態(tài)類型化是一種功能,可以在開發(fā)人員編寫腳本時檢測錯誤镣典。查找并修復(fù)錯誤是當(dāng)今開發(fā)團(tuán)隊的迫切需求兔毙。有了這項功能,就會允許開發(fā)人員編寫更健壯的代碼并對其進(jìn)行維護(hù)兄春,以便使得代碼質(zhì)量更好澎剥、更清晰。

2. 大型的開發(fā)項目
有時為了改進(jìn)開發(fā)項目赶舆,需要對代碼庫進(jìn)行小的增量更改哑姚。這些小小的變化可能會產(chǎn)生嚴(yán)重的、意想不到的后果芜茵,因此有必要撤銷這些變化叙量。使用TypeScript工具來進(jìn)行重構(gòu)更變的容易、快捷九串。

3. 更好的協(xié)作
當(dāng)開發(fā)大型項目時宛乃,會有許多開發(fā)人員,此時亂碼和錯誤的機(jī)也會增加蒸辆。類型安全是一種在編碼期間檢測錯誤的功能征炼,而不是在編譯項目時檢測錯誤。這為開發(fā)團(tuán)隊創(chuàng)建了一個更高效的編碼和調(diào)試過程躬贡。

4. 更強(qiáng)的生產(chǎn)力
干凈的 ECMAScript 6 代碼谆奥,自動完成和動態(tài)輸入等因素有助于提高開發(fā)人員的工作效率。這些功能也有助于編譯器創(chuàng)建優(yōu)化的代碼拂玻。

JavaScript 的優(yōu)勢

相比于 TypeScript酸些,JavaScript 也有一些明顯優(yōu)勢。

1. 人氣
JavaScript 的開發(fā)者社區(qū)仍然是巨大而活躍的檐蚜,在社區(qū)中可以很方便地找到大量成熟的開發(fā)項目和可用資源魄懂。

2. 學(xué)習(xí)曲線
由于 JavaScript 語言發(fā)展的較早,也較為成熟闯第,所以仍有一大批開發(fā)人員堅持使用他們熟悉的腳本語言 JavaScript市栗,而不是學(xué)習(xí) TypeScript。

3. 本地瀏覽器支持
TypeScript 代碼需要被編譯(輸出 JavaScript 代碼)咳短,這是 TypeScript 代碼執(zhí)行時的一個額外的步驟填帽。

4. 不需要注釋
為了充分利用 TypeScript 特性,開發(fā)人員需要不斷注釋他們的代碼咙好,這可能會使項目效率降低篡腌。

5. 靈活性
有些開發(fā)人員更喜歡 JavaScript 的靈活性。

如何抉擇

TypeScript 正在成為開發(fā)大型編碼項目的有力工具勾效。因為其面向?qū)ο缶幊陶Z言的結(jié)構(gòu)保持了代碼的清潔嘹悼、一致和簡單的調(diào)試叛甫。因此在應(yīng)對大型開發(fā)項目時,使用 TypeScript 更加合適杨伙。如果有一個相對較小的編碼項目合溺,似乎沒有必要使用 TypeScript,只需使用靈活的 JavaScript 即可缀台。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末棠赛,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子膛腐,更是在濱河造成了極大的恐慌睛约,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,542評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件哲身,死亡現(xiàn)場離奇詭異辩涝,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)勘天,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,596評論 3 385
  • 文/潘曉璐 我一進(jìn)店門怔揩,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人脯丝,你說我怎么就攤上這事商膊。” “怎么了宠进?”我有些...
    開封第一講書人閱讀 158,021評論 0 348
  • 文/不壞的土叔 我叫張陵晕拆,是天一觀的道長。 經(jīng)常有香客問我材蹬,道長实幕,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,682評論 1 284
  • 正文 為了忘掉前任堤器,我火速辦了婚禮昆庇,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘闸溃。我一直安慰自己整吆,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,792評論 6 386
  • 文/花漫 我一把揭開白布圈暗。 她就那樣靜靜地躺著掂为,像睡著了一般。 火紅的嫁衣襯著肌膚如雪员串。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,985評論 1 291
  • 那天昼扛,我揣著相機(jī)與錄音寸齐,去河邊找鬼欲诺。 笑死,一個胖子當(dāng)著我的面吹牛渺鹦,可吹牛的內(nèi)容都是我干的扰法。 我是一名探鬼主播,決...
    沈念sama閱讀 39,107評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼毅厚,長吁一口氣:“原來是場噩夢啊……” “哼塞颁!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起吸耿,我...
    開封第一講書人閱讀 37,845評論 0 268
  • 序言:老撾萬榮一對情侶失蹤祠锣,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后咽安,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體伴网,經(jīng)...
    沈念sama閱讀 44,299評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,612評論 2 327
  • 正文 我和宋清朗相戀三年妆棒,在試婚紗的時候發(fā)現(xiàn)自己被綠了澡腾。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,747評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡糕珊,死狀恐怖动分,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情红选,我是刑警寧澤刺啦,帶...
    沈念sama閱讀 34,441評論 4 333
  • 正文 年R本政府宣布,位于F島的核電站纠脾,受9級特大地震影響玛瘸,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜苟蹈,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,072評論 3 317
  • 文/蒙蒙 一糊渊、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧慧脱,春花似錦渺绒、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,828評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至氮采,卻和暖如春殷绍,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背鹊漠。 一陣腳步聲響...
    開封第一講書人閱讀 32,069評論 1 267
  • 我被黑心中介騙來泰國打工主到, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留茶行,地道東北人。 一個月前我還...
    沈念sama閱讀 46,545評論 2 362
  • 正文 我出身青樓登钥,卻偏偏與公主長得像畔师,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子牧牢,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,658評論 2 350

推薦閱讀更多精彩內(nèi)容