Boolean()轉(zhuǎn)換和相等操作符比較

if的判斷

if(condition) {
        statement
}

condition的值會自動調(diào)用Boolean()轉(zhuǎn)換函數(shù)將這個(gè)表達(dá)式的結(jié)果轉(zhuǎn)換為一個(gè)布爾值。如果condition值為true則執(zhí)行括號內(nèi)語句statement。

Boolean()轉(zhuǎn)換

數(shù)據(jù)類型 轉(zhuǎn)換位false的值
Boolean false
String ""(空字符串)為false
Number 0和NaN為false
Object 全為true
Undefined false
Null false

例子

if (" ") {
    console.log('blank')
}//true,輸出blank,if()內(nèi)不是空字符串有空格

if ("") {
    console.log('empty')
}//false,不輸出,if()內(nèi)空字符串

if ([0]) {
    console.log('array')
}//true 輸出array,[0]是空數(shù)組

==的判斷

在轉(zhuǎn)化不同的數(shù)據(jù)類型時(shí),有以下基本規(guī)則

  • 如果有一個(gè)操作數(shù)是布爾值,則在比較相等性之前先將其轉(zhuǎn)換為數(shù)值
  • 如果一個(gè)操作數(shù)是字符串,另一個(gè)數(shù)是數(shù)值,在比較相等性之前先將字符串轉(zhuǎn)換為數(shù)值
  • 如果一個(gè)操作數(shù)是對象,另一個(gè)操作數(shù)不是,則調(diào)用對象的valueOf()方法,用得到的基本類型值按照前面的規(guī)則進(jìn)行比較。

一些特殊情況

表達(dá)式
null == undefined true
NaN == NaN false
false == 0 true
undefined == 0 false
null == 0 fasle
"1" == 1 true

例子

"" == 0 // true

" " == 0 //true

"hello" == true //false

var obj = { 
  a: 0, 
  valueOf: function(){return 1} 
} 
obj == 1 // true
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容