JavaScript中的相等

2021-08-21 07:44:17 字數 1243 閱讀 2664

ecmascript提供了兩組操作符 

1. 相等和不相等(『==』 ,』!=』)特點:先轉換再比較 

2.全等和不全等(』===』 , 『!==』)特點:僅比較而不轉換

根據ecmascript規範:

null 和 undefined是相等的 

null == undefined //true

null === undefined //false

相同資料型別比較規則: 

==:如果兩個運算元相等,返回true,不相等返回false 

!=:如果兩個運算元不相等,返回true,相等返回false

不同資料型別比較規則: 

如果有乙個運算元是布林值,則比較相等前先轉換為數值:false->0,true->1; 

如果乙個運算元是字串,另乙個運算元是數值,則再比較相等性前先將字串轉換為數值; 

如果乙個運算元是物件,另乙個不是,則呼叫物件的valueof()方法,用得到的基本型別按照上面的規則進行比較;

在比較相等性之前,不能將null和undefined轉換成其他任何值

如果有乙個運算元是nan,則相等操作符返回false。即使兩個運算元都是nan,相等操作符也返回false 

nan == nan //false

如果兩個運算元都是物件,則比較它們是不是同乙個物件。如果兩個運算元都指向同乙個物件,則相等操作符返回 true ;否則,返回 false 。

true == 1 //true

true == 2 //false

false == 0 //true

false == 1 //false

5 == '5' //true

5 == nan //false

nan == nan //false

全等操作符相比相等操作符在資料比較時更為嚴格,資料比較之前不做處理 除了在比較之前不轉換運算元之外,全等和不全等操作符與相等和不相等操作符沒什麼區別

"66" === 66 //false

true === 1 // false

true === true //true

null === undefined // false

綜上,我們一般推薦不使用==和!=,而是應該使用===和!==,因為這些運算子不涉及到強制型別轉換。

javascript中的相等操作符

if false 輸出1 if false 不輸出 if 輸出3 if 1 1 不輸出相等運算子用來比較相同型別的資料時,與嚴格相等運算子完全一樣。原始型別的值會轉換成數值再進行比較。物件 包括陣列和函式 與原始型別的值比較時,物件轉換成原始型別的值,再進行比較。高程第51頁很好的解釋了在轉換不同的...

3 5 7 Javascript之相等操作符

相等和不相等 相等 和不相等 在比較的時候都會先轉換運算元然後再判斷相等性 console.log a 97 false a 會先轉換為數值再比較,nan console.log false 0 true false會先轉換為0再比較 console.log null undefined true全...

原創 c 中的幾個相等

今天學到了c 中的幾個相等,我來和大家一起學習一下。相等大概有下面四種,如下 public static bool referenceequals object left,object right public static bool equals object left,object right ...