等值檢測(cè)運(yùn)算符包括 4 個(gè),詳細(xì)說(shuō)明如表所示。
等值檢測(cè)運(yùn)算符
等值檢測(cè)運(yùn)算符 說(shuō)明
==(相等) 比較兩個(gè)操作數(shù)的值是否相等
!=(不想等) 比較兩個(gè)操作數(shù)的值是否不相等
===(全等) 比較兩個(gè)操作數(shù)的值是否相等,同時(shí)檢測(cè)它們的類(lèi)型是否相同
!==(不全等) 比較兩個(gè)操作數(shù)的值是否不相等,同時(shí)檢測(cè)它們的類(lèi)型是否不相同
在相等運(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ì)象,則比較引用地址。如果引用地址相同,則相等;否則不等。
示例1,下面是特殊操作數(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
NaN與任何值都不相等,包括它自己。null 和 undefined 值相等,但是它們是不同類(lèi)型的數(shù)據(jù)。在相等比較中,null 和 undefined 不允許被轉(zhuǎn)換為其他類(lèi)型的值。
【網(wǎng)站聲明】本站部分內(nèi)容來(lái)源于互聯(lián)網(wǎng),旨在幫助大家更快的解決問(wèn)題,如果有圖片或者內(nèi)容侵犯了您的權(quán)益,請(qǐng)聯(lián)系我們刪除處理,感謝您的支持!