if的判斷
原理
類型 | 結果 |
---|---|
Undefined | false |
Null | false |
Boolean | 直接判斷 |
Number | +0, −0, 或者 NaN 為 false, 其他為 true |
String | 空字符串為 false,其他都為 true |
Object | true |
舉例
判斷下面的輸出內容
if ("hello") { console.log("hello") } //輸出 hello if ("") { console.log('empty') } //沒有輸出 if (" ") { console.log('blank') } //輸出blank if ([0]) { console.log('array') } //輸出array if('0.00'){ console.log('0.00') } // 輸出0.00
==的判斷
原理
x | y | 結果 |
---|---|---|
null | undefined | true |
Number | String | x == toNumber(y) |
Boolean | (any) | toNumber(x) == y |
Object | String or Number | toPrimitive(x) == y |
otherwise | otherwise | false |
toNumber
type | Result |
---|---|
Undefined | NaN |
Null | 0 |
Boolean | ture -> 1, false -> 0 |
String | "abc" -> NaN, “123” -> 123 |
toPrimitive
對於 Object 類型,先嘗試調用 .valueOf 方法獲取結果。 如果沒定義,再嘗試調用 .toString方法獲取結果
舉例
判斷下面的輸出內容
"" == 0 // true " " == 0 // true "" == true // false "" == false // true " " == true // false !" " == true // false !" " == false // true "hello" == true // false "hello" == false // false "0" == true // false "0" == false // true "00" == false // true "0.00" == false // true undefined == null // true true == {} // false [] == true // false var obj = { a: 0, valueOf: function(){return 1} } obj == "[object Object]" // false obj == 1 // true obj == true // true
作者:張柴柴
鏈接:https://www.jianshu.com/p/a9c44c467f44
來源:簡書
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。