iT邦幫忙

1

Javascript 進階 3-3 動態型別

  • 分享至 

  • xImage
  •  

Javascript 是動態型別的語言

必須在執行階段才會賦予確立型別

以下面的例子說明

    var name = '小明'
    
    // 創造階段
    var name;
    // 執行階段
    name = '小明';

name 這個變數要到了執行階段才會被確立型別為 '小明' 的字串。

這個時候,我們可以利用 typeof 來做型別的確認

    var name = '小明'
    
    console.log(typeof(name)); // string
    console.log(typeof('小明')); // string

透過 typeof ,我們可以知道執行到現在的時間點,該變數的型別為甚麼。

同時直接檢查值得型別,也可以得到預期的結果,例如檢查為 '小明' 字串,得到的回應就是 string。

再來看看另一段範例程式:

    var num = 1;
    console.log(typeof(num)); // number
    num = '文字';
    console.log(typeof(num)); // string

所以透過這段程式碼的範例可以看到,變數的型別會隨著賦值不同而轉換成不同的型別。

另外再行別轉換的內容中,也有特別要注意的兩個陷阱。

顯性的轉換 Explicit conversion

就是變數直接被賦予另外一個值得時候,就稱為顯性的轉換。

如同上方的範例,num 這個變數一開始被賦予數字 1,但後來又被賦予字串 '文字'。

所以在被賦值完之後,其型別就從數字(number)轉變為字串(string)。

隱性的轉換 Implicit converison

他在轉換的過程中,可能會透過某些運算方式,改變其變數的內容以及型別,以下舉兩個例子:

    var num = 1;
    num = num + '';
    console.log(num, typeof(num)); // 1, string

第一個就是在針對數字的時候,+上字串的內容,該變數就會變為字串。

第二個內容接續剛剛的程式碼:

    var num = 1;
    num = num + '';
    console.log(num, typeof(num)); // 1, string
    
    num = num * 3;
    console.log(num, typeof(num)); // 3, number

對寫入數字字串的變數進行乘法的話,則會再被轉換為數字型別。

以上就是這章的分享,希望有幫助到大家,汪汪~


圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言