JavaScript等性運算子之等號和非等號

來源:互聯網
上載者:User

判斷兩個變數是否相等是程式設計中非常重要的運算。在處理原始值時,這種運算相當簡單,但設計對象,任何就稍微有點複雜。JavaScript提供了兩套運算子處理這個問題,等號和非等號使用者處理原始值;全等號和非全等號用於處理對象。

   在JavaScript中,等號由雙等號(==)表示若且唯若兩個運算數相等時,它返回true非等號是驚嘆號加等號(!=),若且唯若兩個運算數不相等時,它返回true。為確定兩個運算數是否相等,這兩個運算子都會進行類型轉換。

執行類型轉換的基本規則如下:

   如果一個運算數是Boolean值,在檢查相等性之前,把它轉換成數字值。false轉換成0,true轉換成1。

   如果一個運算數是字串,另一是數字,在檢查相等性之前,要嘗試把字串轉換成數字。

   如果一個運算數是對象,另一個是字串,在檢查相等性之前,要嘗試把對象轉換成字串(調用toString()方法)。

   如果一個運算數是對象,另一是數字,在檢查相等性之前,要嘗試把對象轉換成數字。

在進行比較時,該運算子還遵守下列規則:

   值null和undefined相等。

   在檢查相等性時,不能把null和undenfined轉換成其他值。

   如果某個運算數是NaN,等號將返回false,非等號將返回true。重要提示:即使連個運算數都是NaN,等號仍然返回false,因為根據規則,NaN不等於NaN。

   如果兩個運算數都是對象,那麼比較的是他們的引用值。如果兩個運算數指向同一個對象,那麼等號返回true,否則兩個運算數不等。

下面的比較列出了一些特殊的情況以及它們的結果:

   null == undefined   //結果為:true

   "NaN" == NaN   //結果為:false

   5== NaN   //結果為:false

   NaN == NaN   //結果為:false

   NaN != NaN   //結果為:true

   false == 0   //結果為:true

   true == 1   //結果為:true

   true == 2   //結果為:false

   undefined == 0   //結果為:false

   null == 0   //結果為:false

   "5" == 5   //結果為: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.