為什麼js是弱型別,動態型別

2021-06-19 05:32:53 字數 402 閱讀 6717

前兩者,弱/強型別指的是語言型別系統的型別檢查的嚴格程度。後兩者指的是變數與型別的繫結方法。 

弱型別相對于強型別來說型別檢查更不嚴格,比如說允許變數型別的隱式轉換,允許強制型別轉換等等。強型別語言一般不允許這麼做。這篇wiki上有例子: 

strong typing

靜態型別指的是編譯器在compile time執行型別檢查,動態型別指的是編譯器(虛擬機器)在runtime執行型別檢查。簡單地說,在宣告了乙個變數之後,不能改變它的型別的語言,是靜態語言;

能夠隨時改變它的型別的語言,是動態語言。

因為動態語言的特性,一般需要執行時虛擬機器支援。

附偉大的wiki有完全的型別系統對比**,請參見:

type system

什麼是強型別,什麼是弱型別?哪種更好些?為什麼

什麼是強型別,什麼是弱型別?哪種更好些?為什麼?強型別是在編譯的時候就確定型別的資料,在執行時型別不能更改,而弱型別在執行的時候才會確定型別。沒有好不好,二者各有好處。強型別安全,因為它事先已經確定好了,而且效率高。一般用於編譯型程式語言,如c j a,c pascal等。弱型別相比而言不安全,在執...

強型別,弱型別,靜態型別,動態型別的區別

型別系統的一些概念,眾說紛紜,使用上也比較亂。有些東西,甚至不好嚴格定義。以下算學術界的一種相對 嚴格 的說法。首先了解一下基本概念 有了上面的概念,再討論強 弱型別,靜態 動態型別 偏向於不容忍隱式型別轉換,弱型別相對于強型別來說型別檢查更不嚴格,比如說允許變數型別的隱式轉換,允許強制型別轉換等等...

強型別與弱型別,靜態型別和動態型別

首先強弱是相對的。強型別 每個變數和物件都必須宣告型別,在編譯時確定好型別了,執行時不能更改。偏向於不容忍隱式型別轉換。譬如說haskell的int就不能變成double。弱型別 編譯時不確定型別,執行時根據語義確定是哪種型別。通俗地說,弱型別偏向於容忍隱式轉換,把不同型別的變數放在一起運算。靜態型...