Javascript–等性運算子

來源:互聯網
上載者:User

判斷兩個變數是否相等是程式設計中非常重要的運算,若是對原始值進行運算,則比較簡單,但涉及到對象,則有點複雜.

ECMAScript提供了兩套運算子處理這個問題:

  • 等號和非等號處理原始值
  • 全等號和非全等號處理對象

1.等號和非等號

等號由==表示.若且唯若兩個運算數相等時,才返回true.

非等號由!=表示.若且唯若兩個運算數不相等時,它返回false.

為了確定運算數是否相等,這兩個運算子都會進行類型轉換.類型轉換基本規則如下:

  • 如果一個運算數是Boolean值,在檢查相等性之前,會把它轉換成數字值.true轉換為1,false轉換為0.
  • 如果一個運算數是數字,另一個運算數是字串,則嘗試將字串轉換為數字.
  • 如果一個運算數是數字,另一個運算數是對象,則嘗試將對象轉換為數字.
  • 如果一個運算數是字串,另一個運算數是對象,則嘗試將對象轉換為字串.
  • 不能將null和undefined轉換成其他類型值.

運算子在進行比較時,遵循以下規則:

  • 值null與undefined相等
  • 如果某個運算數是NaN,等號返回false,非等號返回true.即使兩個運算數都是NaN,等號仍返回false
  • 如果兩個運算數都是對象,則比較的是它們的引用值.

對一些特殊值進行比較,前提代碼:

        function display(value){            document.write(value+"<br/>");        }                var obj1 = new Object();        var obj2 = new Object();        var obj3 = obj1;

結果:

比較式 結果
1=="1" true
1==false false
1==true true
2==true false
null==undefined true
1==NaN false
NaN==NaN false
NaN!=NaN true
obj1==obj2 false
obj1==obj3 true

2.全等號和非全等號

全等號由===表示.只有在無需類型轉換運算數的情況下,才返回true.

非全等號由!==表示.

例子,前提代碼:

        function display(value){            document.write(value+"<br/>");        }                var obj1 = new Object();        var obj2 = new Object();        var obj3 = obj1;

結果:

比較式 結果
1==="1" false
1===false false
1===true false
2===true false
null===undefined false
1===NaN false
NaN===NaN false
NaN!==NaN true
obj1===obj2 false
obj1===obj3 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.