Javascript 中的相等與不等

在 javascript 中,可使用 == 來比較兩個數據是否相等,若是兩個數據的類型不一樣,那麼,將在進行轉換後進行比較,轉換的規則以下:javascript

 

l         若是其中一個操做數的類型爲 Boolean ,那麼,首先將它轉換爲數字類型,false 轉換爲 0, true 將轉換爲 1。java

l         若是其中一個操做數的類型是字符串,另一個爲數字類型,那麼,將字符串轉換爲數字進行比較。對象

l         若是其中一個操做數的類型是字符串,另一個爲 object 類型,那麼,將調用對象的 toString 方法以後,比較字符串。ip

l         若是其中一個操做數的類型是數字類型,另一個爲 object 類型,那麼,將對象轉換爲數值後進行數字比較。字符串

 

如下的規定了一些特殊的比較:object

l         null 和 undefined 是相等的。引用

l         null 和 undefined 不會轉換爲任何其餘類型方法

l         若是任何一個操做的結果爲 NaN,那麼相等比較返回 false,不相等比較返回 true。注意,即便兩個操做數都爲 NaN,返回結果同樣是 false,也就是說,NaN 不等於 NaN。數據

l         若是兩個操做數都是對象,那麼比較它們引用的值,若是引用同一個對象,那麼,返回真,不然,返回假。字符

 

alert(null == undefined);   // true

alert(undefined == null);   // true

 

alert(true == 1);   // true

alert(false == 0);  // true

alert(true == 2);   // false

 

var obj = {};  

alert(10 == obj);   // false

 

徹底相同的比較 === 和不徹底相等 !==

徹底相同的比較用來比較不進行轉換是否相等,例如:

 

var a = "100";

var b = 100;

 

alert(a == b);      // true

alert(a === b);     // false

 

== 比較將返回真,由於 「100」 首先轉換爲數字 100, 而後與數字 100 進行比較,結果相等。

=== 比較將返回假,由於字符串 」100」 不通過轉換的話,與數字 100 不相等。

 

!== 用於比較在不轉換的狀況下,是否不相等。

 

alert(a != b);      // false

alert(a !== b);     // true

相關文章
相關標籤/搜索