位置:首頁(yè) > 軟件操作教程 > 編程開發(fā) > JavaScript > 問(wèn)題詳情

JavaScript 相等和全等

提問(wèn)人:劉團(tuán)圓發(fā)布時(shí)間:2020-11-24

■知識(shí)點(diǎn)

等值檢測(cè)運(yùn)算符包括4個(gè),詳細(xì)說(shuō)明如表所示。

比較運(yùn)算符

說(shuō)

==(相等)

比較兩個(gè)操作數(shù)的值是否相等

!=(不相等)

比較兩個(gè)操作數(shù)的值是否不相等

===(全等)

比較兩個(gè)操作數(shù)的值是否相等,同時(shí)檢測(cè)它們的類型是否相等

!==(不全等)

比較兩個(gè)操作數(shù)的值是否不相等,同時(shí)檢測(cè)它們的類型是否不相等

在相等運(yùn)算中,應(yīng)注意以下幾個(gè)問(wèn)題。

    如果操作數(shù)是布爾值,則先轉(zhuǎn)換為數(shù)值,其中false轉(zhuǎn)為0, true轉(zhuǎn)換為1。

    如果一個(gè)操作數(shù)是字符串,另一個(gè)操作數(shù)是數(shù)字,則先嘗試把字符串轉(zhuǎn)換為數(shù)字。

    如果一個(gè)操作數(shù)是字符串,另一個(gè)操作數(shù)是對(duì)象,則先嘗試把對(duì)象轉(zhuǎn)換為字符串。

    如果一個(gè)操作數(shù)是數(shù)字,另一個(gè)操作數(shù)是對(duì)象,則先嘗試把對(duì)象轉(zhuǎn)換為數(shù)字。

    如果兩個(gè)操作數(shù)都是對(duì)象,則比較引用地址。如果引用地址相同,則相等,否則不等。

在全等運(yùn)算中,應(yīng)注意以下幾個(gè)問(wèn)題。

    如果兩個(gè)操作數(shù)都是簡(jiǎn)單的值,則只要值相等,類型相同,就全等。

    如果一個(gè)操作數(shù)是簡(jiǎn)單的值,另一個(gè)操作數(shù)是復(fù)合型對(duì)象,則不全等。

    如果兩個(gè)操作數(shù)都是復(fù)合型對(duì)象,則比較引用地址是否相同。

■實(shí)例設(shè)計(jì)

下面是特殊操作數(shù)的比較。

console.log("1" == 1)                   //返回true。字符串被轉(zhuǎn)換為數(shù)字

console.log(true == 1)                 //返回true。true被轉(zhuǎn)換為1

console.log(false == 0)                //返回true。false被轉(zhuǎn)換為0

console.log(null == 0)                 //返回false

console.log(undefined == 0)       //返回false

console.log(undefined == null)    //返回true

console.log(NaN == "NaN")         //返回false

console.log(NaN == 1)                 //返回false

console.log(NaN == NaN)            //返回false

console.log(NaN != NaN)             //返回true

提示:

NSN與任何值都不相等,包括它自己。mull和undefined值相等。在相等比輕中,null和undefined不允許被轉(zhuǎn)換為其他類型的值。

下面是特殊操作數(shù)的全等比較。

console.log(null === undefined)      //返回false

console.log(0 === "0")                     //返回false

console.log(0 === false)                  //返回false)

下面是兩個(gè)對(duì)象的比較,由于它們都引用了相同的地址,所以返回true。

var a = {};

var b = a;

console.log(a === b);                //返回true

下面兩個(gè)對(duì)象雖然結(jié)構(gòu)相同,但是地址不同,所以不全等。

var a = {};

var b = {};

console.log(a === b);                //返回false


繼續(xù)查找其他問(wèn)題的答案?

相關(guān)視頻回答
回復(fù)(0)
返回頂部