js基礎:關於Boolean() 與 if


最近面試比較多,但每次我問這個問題的時候,答出來的同學並不多

var a = 0;

if( a) {
     alert(1);  
}

這個問題有部分人會答alert(1),   有些人會答不執行。

結果是不執行的,但答不執行的同學也說不出為什么,他只會說以他的經驗,所以在這里我覺得有必要補下js基礎知識,js基礎好的人可以跳過此博文。

首先說這個問題之前 我們先回憶下 Boolean();

Boolean 是個轉型函數。即可以傳任何值轉成 boolean類型, 即返回true 和 false.

那么什么時候是true , 什么時候是false, 它是有一定規則的。

我通過一張表來表明此規則。

數據類型 轉換為true的值 轉換為false的值
Boolean true false
String 任何非空字符串 “”
Number 任何非0數值 0和NaN
Object  任何對象 null
Undefined   undefined

注: Undefined 沒有轉換為true的值。

從這里我們一目了然, Boolean(0) 返回的是 false;

那么當if語句里面沒有表達式,只是某個值時 如 if (XXX)  它會自動執行Boolean(xxx)操作,  即 if(XXX) = if(Boolean(xxx))

所以我們對應上面Boolean的轉換規則 ,再結合上面的題,就非常容易理解了。

這就是 if(0) 會返回false的原因。

 


免責聲明!

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



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