js函式中的if判斷和a==b判斷
if判斷
if(xxx){ }
括號內的表示式,會被強制轉換為布林型別
原理
型別 | 結果 |
---|---|
Undefined | false |
Null | false |
Boolean | 直接判斷 |
Number | +0, −0, 或者 NaN 為 false, 其他為 true |
String | 空字串為 false,其他都為 true |
Object | true |
a==b的判斷的規則如下:
1、如果兩個值型別相同,進行 === 比較。
2、如果兩個值型別不同,他們可能相等。根據下面規則進行型別轉換再比較:
a、如果一個是null、一個是undefined,那麼[相等]。
b、如果一個是字串,一個是數值,把字串轉換成數值再進行比較。
c、如果任一值是 true,把它轉換成 1 再比較;如果任一值是 false,把它轉換成 0 再比較。
d、如果一個是物件,另一個是數值或字串,把物件轉換成基礎型別的值再比較。物件轉換成基礎型別,利用它的toString或者valueOf方法。
e、任何其他組合,都[不相等]。
表格如下:
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的轉換
型別 | 結果 |
---|---|
Undefined | NaN |
Null | 0 |
Boolean | ture -> 1, false -> 0 |
String | “abc” -> NaN, “123” -> 123 |
對於 Object 型別,先嚐試呼叫 .valueOf 方法獲取結果。 如果沒定義,再嘗試呼叫 .toString方法獲取結果
作者:徐金俊
連結:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/1978/viewspace-2814311/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- JS的判斷語句:判斷、迴圈JS
- MySQL函式-條件判斷函式MySql函式
- js中的型別判斷JS型別
- JavaScript 判斷函式是否存在JavaScript函式
- js基礎-12-判斷陣列和判斷物件的方法JS陣列物件
- js判斷checkbox是否選中JS
- 函式實現閏年判斷函式
- bash函式應用之:判斷函式是否存在函式
- js判斷型別JS型別
- js判斷時間JS
- JS 型別判斷JS型別
- js判斷json中資料的真假JSON
- js判斷true和false一覽JSFalse
- JavaScript 判斷變數是否是函式JavaScript變數函式
- (PAT)使用函式判斷完全平方數函式
- js空物件判斷 isPlainObjectJS物件AIObject
- JS中判斷null、undefined與NaN的方法JSNullUndefinedNaN
- 使用帶型別判斷的比較判斷型別
- js判斷物件的幾種方法JS物件
- js五種為false的判斷JSFalse
- js資料型別的判斷JS資料型別
- 如何判斷一個雜湊函式的好壞函式
- js 判斷eventTarget 重複新增JS
- js:判斷物件或陣列JS物件陣列
- js判斷字串是否為空JS字串
- js判斷資料型別JS資料型別
- js判斷手機系統JS
- js判斷裝置型別JS型別
- js判斷物件是否為空JS物件
- 怎麼判斷dns汙染,怎麼判斷dns汙染,具體判斷方法DNS
- JS資料型別分類和判斷JS資料型別
- python中如何判斷all函式輸出結果為true?Python函式
- if 判斷使用
- getDate方法的妙用(js判斷閏年)JS
- 如何判斷股票有沒有主力?主力的判斷方法
- python中字串格式判斷Python字串
- Python中None如何判斷PythonNone
- PAT-B 1061 判斷題【模擬】