javascript數據類型轉換

javascript數據類型轉換

在面試中常常會遇見問類型轉換的問題,例如[] == false、[] == {}返回的是真仍是假等等。。。javascript

默認是false的五個值

null undefined NaN 0 ''

記住只有這五個值是假的剩下的所有是真的。java

轉換規則

  1. 若是是一個值判斷是不是真假,除了默認是false的五個值剩下的所有是true。
  2. 若是是兩個值比較是否相等,遵循以下規則。git

    val1 == val2 若是兩個值可能不是同一數據類型,若是是==比較的話,會默認進行數據轉換。github

    2.1 object == object,比較永遠不相等。面試

    2.2 object == string 先將對象轉換成字符串(調用toString方法),而後再比較。code

    [] 轉換成字符串 ""
    {} 轉換成字符串 "[object Object]"

    2.3 object == boolean 先將對象轉換成字符串(toString),再把字符串轉換成數字(Number)、布爾值轉換成數字(true 轉換成 1 false 換成成 0)而後讓兩個數字進行比較。對象

    Number("") 會輸出 0

    2.4 object == number
    先將對象轉換成字符串(toString),再把字符串轉換成數字(Number),再進行比較。blog

    2.5 number == boolean 布爾值轉換成數字,而後再比較。ip

    2.6 number == string 字符串轉換成數字,而後再比較。字符串

    2.7 string == boolean 都轉換成數字,,而後再比較。

    2.8 null == undefined 結果是true。

    2.9 null 或者 undefined 比較另外的全部值,結果都是false,不相等。

例如:

[] == false 返回 true 2.3規則。
 [] == []  返回 false 2.1規則。
 2 == true 返回 false 2.5規則。

=== 三個等號還會比較數據類型。

這些規則背下來,就能完美的應付這樣的面試題了,加油!

個人博客和GitHub地址

https://github.com/lanpangzhi

http://blog.langpz.com

相關文章
相關標籤/搜索