像這種非正常現象,**返回的結果可能不是布爾值**,是由于其他類型數據參與邏輯運算的時候,瀏覽器解析器會自動將這些數據“隱式轉換”為布爾值進行邏輯運算。
通過
boolean() 隱式轉換的
數字類型 布爾值
0 false
NaN
<br/>
其余數字 true
<br/>
<br/>
<br/>
字符串 布爾值
<br/>
<br/>
空字符串 false
<br/>
<br/>
非空字符串 true
<br/>
<br/>
<br/>
<br/>
未定義類型數值 布爾值
<br/>
<br/>
undefined false
<br/>
<br/>
空對象類型 布爾值
<br/>
<br/>
null false
在非布爾值進行&&運算時候
<br/>
<br/>
如果是false&&true運算,那么返回false的值
<br/>
如果是true&&true運算,那么返回第二個true的值。
<br/>
如果是true&&false運算,那么返回false值。
<p style="color:red">所以說就看第一個值是true還是false如果第一個值為false返回第一值,如果第一個值為true返回第二值。</p>
在非布爾值進行||運算時候
<br/>
<br/>
如果是false||true運算,那么返回true的值。
<br/>
如果是true||false運算,那么返回true的值。
<br/>
如果是true||true運算,那么返回第一個true的值。
<br/>
- javascript簡介與書寫規范
- alert()----警告框函數
- prompt() --提示框
- 控制臺使用
- 數字字面量
- JS的數據類型
- Infinity和NaN兩個特殊的數字字面量
- 字符串型字面量
- 變量
- 變量聲明提升
- 數據類型的判斷typeof
- 數字轉換為字符串(+)
- 字符轉換數字parseInt
- 數學運算符
- 數學對象Math
- 字符串隱士轉換數據類型
- 比較運算符
- 其他類型數據參與比較
- 字符串類型參與比較運算
- 布爾類型邏輯運算符
- 其他類型數據參與布爾運算boolean()
- if多分支案例
- if嵌套語句
- 賦值運算符
- switch放布爾值方法
- 同名變量
- for循環經典案例
- function函數
- 函數 形參與實參
- 全局與局部變量
- 函數作用域
- 函數返回關鍵字return 使用
- 函數經典實戰(水仙花與幸運數)
- 表達式函數
- 關鍵字形式函數與表達式函數區別
- 回調函數
- 函數遞歸現象
- 表達式函數IIFE
- 數組
- 數組length屬性(獲取數組元素個數)
- 數組Push方法與pop方法(添加與刪除尾部元素)
- 數組unshift與 shift方法(添加與刪除數組頭部元素)
- 數組indexOf與includes方法
- 數組slice與splice方法
- 數組join 與reverse方法
- 字符串length屬性(輪遍字符個數)
- 字符串toLowerCase與 toUpperCase(轉換大小寫)
- 字符串的search方法 split(分割字符串為數組)
- 字符串substring 與substr方法(裁剪出來生成新數組)
- 字符串replace與match方法
- 正則表達式
- JSON格式數據格式
- 字符串方法match結合正則使用
- search方法結合正則一起使用
- replace結合正則使用
- exec正則表達式方法
- test正則方法(返回布爾值)
- 字符集--正則表達式
- 修飾符--正則表達式
- 邊界符--正則表達式
- 預定義類--正則表達式
- 量詞--正則表達式
- 三元運算符與類數組對象arguments
- 正則表達式經典代碼