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
- js資料型別判斷和陣列判斷JS資料型別陣列
- js如何判斷一個函式是否存在JS函式
- MySQL函式-條件判斷函式MySql函式
- js中的型別判斷JS型別
- JavaScript 判斷函式是否存在JavaScript函式
- js基礎-12-判斷陣列和判斷物件的方法JS陣列物件
- js如何判斷指定名稱的函式是否存在JS函式
- js hasOwnProperty()函式判斷屬性是非繼承JS函式繼承
- 函式實現閏年判斷函式
- lua 函式變數 assert判斷函式變數
- 學生成績判斷函式介面函式
- bash函式應用之:判斷函式是否存在函式
- 關於js的判斷JS
- js判斷型別JS型別
- js判斷時間JS
- JS 型別判斷JS型別
- JS判斷備忘JS
- JavaScript 判斷變數是否是函式JavaScript變數函式
- (PAT)使用函式判斷完全平方數函式
- js判斷checkbox是否選中JS
- js判斷true和false一覽JSFalse
- 如何判斷函式是否是javascript內建的函式JavaScript
- JS中判斷null、undefined與NaN的方法JSNullUndefinedNaN
- javascript中的typeof和型別判斷JavaScript型別
- js空物件判斷 isPlainObjectJS物件AIObject
- js判斷字串中是否含有指定字元JS字串字元
- 使用帶型別判斷的比較判斷型別
- php判斷字串A是否含有字串BPHP字串
- js中 &&與和||或運算子用作判斷語句JS
- 怎麼判斷dns汙染,怎麼判斷dns汙染,具體判斷方法DNS
- js判斷json中資料的真假JSON
- 如何判斷一個雜湊函式的好壞函式
- 判斷輸入值全為數字的函式函式
- js五種為false的判斷JSFalse
- js判斷物件的幾種方法JS物件
- js資料型別的判斷JS資料型別