js中布爾值為false的六種情況


一、js中布爾值為false的六種情況

下面6種值轉化為布爾值時為false,其他轉化都為true

1、undefined(未定義,找不到值時出現)

2、null(代表空值)

3、false(布爾值的false,字符串"false"布爾值為true)

4、0(數字0,字符串"0"布爾值為true)

5、NaN(無法計算結果時出現,表示"非數值";但是typeof NaN==="number")

6、""(雙引號)或''(單引號) (空字符串,中間有空格時也是true

注意空數組空對象,負值轉的布爾值時都為true

不同數據類型轉化為布爾值的結果
數據類型 轉為true的值 轉為false的值
Boolean true false
String 任何非空字符串 ''(空字符串)
Number 任何非零數字值(包括無窮大) 0和NaN
Object 任何對象 null
Undefined n/a undefined

 

對於0, '', null, undefined, NaN,{}, [], Infinity求布爾值,分別是false false false false false true true true.

因此我們知道的一點是:對象的布爾值是true,即使是對象{}。

 

"!!"將表達式進行強制轉化為bool值的運算,運算結果為true或者false。

例如 array=[1,2,3]      array.num=undefind   !array.num=true   !!array.num=false

 

二、出現undefind的中情況

1、未初始化的變量

變量未定義 或 變量定義了沒有賦值  或者 函數形參未賦值

2、不返回任何結果的函數的調用結果

函數return沒有值 

function show(){
   return;
};
console.log(show());   // undefined

函數沒有return

function show(){
            
};
console.log(show());  // undefined

3. 不存在的對象屬性或方法

let favoriteMovie = {
  title: 'Blade Runner'
};
favoriteMovie.actors; // => undefined

4.越界索引數組元素

const colors = ['blue', 'white', 'red'];
colors[5];  // => undefined
colors[-1]; // => undefined

 

三、出現null的幾種情況

1.在JS的DOM元素獲取中,如果沒有獲取到指定的元素對象,結果一般是null。

2.Object.prototype._proto_的值也是null。

3.在正則捕獲的時候,如果沒有捕獲到結果,默認也是null。

 

 

 


免責聲明!

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



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