Day18. JavaScript你可以繼續轉換沒關係

Day18. JavaScript你可以繼續轉換沒關係

本日閱讀進度:第七章 重要的資料型別(285~306頁)

重點摘要:

1. 加減乘除時的資料型別轉換

除了==在做比較時會自(ㄐㄧ)動(ㄆㄛˊ)轉換資料型別,加減乘除時也會自動轉換。 其中,加法是最奇怪的了。

  • 加法(+)時的轉換

    如果要把數字和字串相加,JavaScript會把數字轉成字串,然後對兩個字串進行串接。得出的值會是字串。

    var addns = 548 + "7";
    console.log(addns)
    // "5487"
    

    字串放在前面也是一樣。

    var addsn = "14" + 50;
    console.log(addsn)
    // "1450"
    

    但如果是這種情況:

    var qun = 1 + 2 + "cats";
    console.log(qun)
    // "3cats"
    

    加上圓括號的話:

    var qun = 1 + (2 + "cats");
    console.log(qun)
    // "12cats"
    
  • 減法、乘法、除法時的轉換

    如果要把數字和字串做減法、乘法、除法的運算,JavaScript會把字串轉成數字,然後對兩個數字進行運算。 得出的值也是數字。

var multi = 3 * "4";
// 12

var divi = 80 / "20"
// 4

var mini = "9529" - 2
// 9527

2. truthy值與falsey值

在JavaScript中,有些值並非true或false,但是在條件式中,它們卻會被視為true或false,JavaScript稱這些值為truthy或falsey。

判斷的技巧是,先判斷是否為falsey值,非falsey值即為truthy值。

而JavaScript有5個值是falsey值:

  • undefined 是 falsey值
  • null 是 falsey值
  • 0 是 falsey值
  • 空字串 是 falsey值
  • NaN 是 falsey值

3. 字串既是一個基本資料型別又是一個物件?

在JavaScript,可以建立一個像基本資料型別的字串,也可以建立一個像物件的字串。 以下介紹一些常用的字串方法:

  • length屬性:用於保存字串中的字符個數。
    var str = "iloveruby";
    console.log(str.length)
    // 9
    
  • charAt方法:charAt方法可以取得索引值對應的字符。如果輸入的數字大於字串長度,會回傳空字串。
    var str = "iloveJS";
    console.log(str.charAt(5))
    // "J"
    
  • indexOf方法:indexOf方法可以取得引數首次在字串出現時,首字的索引值。
    var str = "loveilovecatlove";
    console.log(str.indexOf("love"))
    // 0
    

    可以再加上一個數字的引數,做為開始搜尋的索引位置。

    var str = "loveilovecatlove";
    console.log(str.indexOf("love", 2))
    // 5
    

    如果找不到該字串,則會回傳-1。

    var str = "loveilovecatlove";
    console.log(str.indexOf("dog"))
    // -1
    
  • split方法:split方法會取得一個字符做為分隔符,藉此將字串分割。
    var str = "i|love|cat";
    console.log(str.split("|"))
    // ["i", "love", "cat"]
    

其他還有replace、toLowerCase、match等眾多方法,就等以後有機會再介紹了。

PS.今天的標題梗來自“繼續旋轉我沒關係”

本文同步發表於iT邦幫忙

Recent post