JavaScript中的操作符==與===介紹,javascript操作符

來源:互聯網
上載者:User

JavaScript中的操作符==與===介紹,javascript操作符

JavaScript中,==與===操作符均可用於判斷兩個值是否相等;不同之處在於,如果進行判斷的兩個實值型別不一致,===操作符會直接返回false,而==操作符則會在類型轉換後再進行判斷。詳細的判斷規則如下:

===操作符的判斷規則

1.如果兩個值的類型不一致,返回false。
2.如果兩個值的類型一致,值一致,返回true。NaN是一個特例,NaN===NaN返回false。
3.如果兩個值均為object類型,那麼與Java一樣,除非兩者引用一致(reference指向同一個對象地址),不然即使object中的內容完全一樣,也認為這兩個值不一致,相應的操作將返回false。比如,建立兩個內容完全一樣的數組,對它們進行===操作後返回結果為false — 雖然它們的內容完全一樣,但還是屬於兩個不同的對象。
4.0===-0返回true。

==操作符的判斷規則

==操作符會將值進行類型轉換後再進行比較,其類型轉換遵循以下原則:優先轉換成number後進行比較,Date對象則優先轉換成string後進行比較。具體判斷規則如下:

1.如果兩個實值型別一致,執行===操作後返回。
2.null==undefined為true。
3.true將轉換成1後進行比較,false將轉換成0後進行比較。
4.如果其中一個值為對象,則將其轉換成number後再進行比較,Date對象除外。
5.如果其中一個值為Date對象,則將其轉換成string後再進行比較。

實驗

複製代碼 代碼如下:
console.log("3" === 3);//false
console.log(NaN === NaN);//false
var a = {x:1, y:2};
var b = {x:1, y:2};
var c = a;
console.log(a === b);//false
console.log(a === c);//true
console.log(0 === -0);//true

console.log("3" == 3);//true
console.log(null == undefined);//true
console.log(true == 1);//true
console.log(true == 9);//false

console.log([9] == 9);//true
console.log([9] == "9");//true

var d = new Date();
var s = d.toString();
var n = d.valueOf();
console.log(d == s);//true
console.log(d == n);//false

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.