js中關於if() 和 == 的判斷


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
來源:簡書
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM