Javascript 中的相等與不等

來源:互聯網
上載者:User

 

在 javascript 中,可以使用 == 來比較兩個資料是否相等,如果兩個資料的類型不同,那麼,將在進行轉換後進行比較,轉換的規則如下:

 

l         如果其中一個運算元的類型為 Boolean ,那麼,首先將它轉換為數字類型,false 轉換為 0, true 將轉換為 1。

l         如果其中一個運算元的類型是字串,另外一個為數字類型,那麼,將字串轉換為數字進行比較。

l         如果其中一個運算元的類型是字串,另外一個為 object 類型,那麼,將調用對象的 toString 方法之後,比較字串。

l         如果其中一個運算元的類型是數字類型,另外一個為 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

 

第一種情況將返回假,因為轉換後是相等的。第二種情況將返回真,因為不經過轉換的話,他們一個是字串,一個是數字,是不相等的。

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.