W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
判斷兩個(gè)變量是否相等是程序設(shè)計(jì)中非常重要的運(yùn)算。在處理原始值時(shí),這種運(yùn)算相當(dāng)簡(jiǎn)單,但涉及對(duì)象,任務(wù)就稍有點(diǎn)復(fù)雜。
ECMAScript 提供了兩套等性運(yùn)算符:等號(hào)和非等號(hào)用于處理原始值,全等號(hào)和非全等號(hào)用于處理對(duì)象。
在 ECMAScript 中,等號(hào)由雙等號(hào)(==)表示,當(dāng)且僅當(dāng)兩個(gè)運(yùn)算數(shù)相等時(shí),它返回 true。非等號(hào)由感嘆號(hào)加等號(hào)(!=)表示,當(dāng)且僅當(dāng)兩個(gè)運(yùn)算數(shù)不相等時(shí),它返回 true。為確定兩個(gè)運(yùn)算數(shù)是否相等,這兩個(gè)運(yùn)算符都會(huì)進(jìn)行類型轉(zhuǎn)換。
執(zhí)行類型轉(zhuǎn)換的規(guī)則如下:
在比較時(shí),該運(yùn)算符還遵守下列規(guī)則:
重要提示:即使兩個(gè)數(shù)都是 NaN,等號(hào)仍然返回 false,因?yàn)楦鶕?jù)規(guī)則,NaN 不等于 NaN。
下表列出了一些特殊情況,以及它們的結(jié)果:
表達(dá)式 | 值 |
---|---|
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 |
等號(hào)和非等號(hào)的同類運(yùn)算符是全等號(hào)和非全等號(hào)。這兩個(gè)運(yùn)算符所做的與等號(hào)和非等號(hào)相同,只是它們?cè)跈z查相等性前,不執(zhí)行類型轉(zhuǎn)換。
全等號(hào)由三個(gè)等號(hào)表示(===),只有在無(wú)需類型轉(zhuǎn)換運(yùn)算數(shù)就相等的情況下,才返回 true。
例如:
var sNum = "66"; var iNum = 66; alert(sNum == iNum); //輸出 "true" alert(sNum === iNum); //輸出 "false"
在這段代碼中,第一個(gè) alert 使用等號(hào)來(lái)比較字符串 "66" 和數(shù)字 66,輸出 "true"。如前所述,這是因?yàn)樽址?"66" 將被轉(zhuǎn)換成數(shù)字 66,,然后才與另一個(gè)數(shù)字 66 進(jìn)行比較。第二個(gè) alert 使用全等號(hào)在沒有類型轉(zhuǎn)換的情況下比較字符串和數(shù)字,當(dāng)然,字符串不等于數(shù)字,所以輸出 "false"。
非全等號(hào)由感嘆號(hào)加兩個(gè)等號(hào)(!==)表示,只有在無(wú)需類型轉(zhuǎn)換運(yùn)算數(shù)不相等的情況下,才返回 true。
例如:
var sNum = "66"; var iNum = 66; alert(sNum != iNum); //輸出 "false" alert(sNum !== iNum); //輸出 "true"
這里,第一個(gè) alert 使用非等號(hào),把字符串 "66" 轉(zhuǎn)換成數(shù)字 66,使得它與第二個(gè)運(yùn)算數(shù) 66 相等。因此,計(jì)算結(jié)果為 "false",因?yàn)閮蓚€(gè)運(yùn)算數(shù)是相等的。第二個(gè) alert 使用的非全等號(hào)。該運(yùn)算是在問:"sNum" 與 "iNum" 不同嗎?這個(gè)問題的答案是:是的(true),因?yàn)?sNum 是字符串,而 iNum 是數(shù)字,它們當(dāng)然不同。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: