一文分清強弱 動態靜態型別語言

2022-09-01 15:12:20 字數 796 閱讀 9095

上文提到前端為何需學習typescript,那麼typescript屬於什麼型別語言呢?

看完本文你便能摸索出來

強弱型別語言

強型別語言:當乙個物件從呼叫函式傳遞到被呼叫函式時,其型別必須與被呼叫函式中宣告的型別相容

a()

b(y)

強型別語言:不允許改變變數的資料型別,除非進行強制型別轉換

class

c}

弱型別語言:變數可以被賦予不同的資料型別

let x = 1;

let y = true

;x = y //

true

靜動態型別語言

靜態型別語言:在編譯階段確定所有變數的型別

動態型別語言:在執行階段確定所有變數的型別

靜態型別語言

動態型別語言

對型別極度嚴格

對型別非常寬鬆

立即發現錯誤

bug可能隱藏數月甚至數年

執行時效能好

執行時效能差

自文件化

可讀性差

動態型別語言的支持者認為:

效能是可以改善的(v8引擎),而語言的靈活性更重要

隱藏的錯誤可以通過單元測試發現

文件可以通過工具生成

可以改善的(v8引擎),而語言的靈活性更重要

隱藏的錯誤可以通過單元測試發現

文件可以通過工具生成

強弱型別 靜態語言 動態語言 指令碼語言

強型別變數一旦宣告 型別不能改變 強型別不支援以下 弱型別支援 1 2 靜態語言 變數需要提前宣告 動態語言不需要 靜態語言 c int a 3 a 1 動態語言 python a 3a 1 動態語言 執行時可以改變結構 新的函式 物件 可以被引進,已有的函式可以被刪除或者結構上的變化。動態語言的型...

一文分清var let和const

相信大家在學習剛開始js的時候,接觸var是最多的,通過var來宣告變數,而在往後的學習可能又遇到了let和const,那麼這三個有什麼區別呢?console.log num 輸出 undefined var num 10 console.log num 輸出 10 這裡的 會報錯,cannot a...

動態型別語言與靜態型別語言

在程式執行期間才做型別檢查的語言。在編寫程式時,不需要給變數指定型別。在程式執行時,給變數賦第乙個值時確定變數的資料型別。動態語言型別優點 1.簡潔,且程式設計師可以專注於本質設計,大大提公升開發效率。動態語言的缺點 1.程式執行速度慢,因為型別檢查是在執行時做的。2.不執行就發現不了型別錯誤問題。...