溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

ECMAScript等性運算符的作用是什么

發(fā)布時間:2021-06-23 15:05:04 來源:億速云 閱讀:150 作者:chen 欄目:編程語言

這篇文章主要講解了“ECMAScript等性運算符的作用是什么”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“ECMAScript等性運算符的作用是什么”吧!

判斷兩個變量是否相等是程序設(shè)計中非常重要的運算。在處理原始值時,這種運算相當(dāng)簡單,但涉及對象,任務(wù)就稍有點復(fù)雜。

ECMAScript 提供了兩套等性運算符:等號和非等號用于處理原始值,全等號和非全等號用于處理對象。

等號和非等號

在 ECMAScript 中,等號由雙等號(==)表示,當(dāng)且僅當(dāng)兩個運算數(shù)相等時,它返回 true。非等號由感嘆號加等號(!=)表示,當(dāng)且僅當(dāng)兩個運算數(shù)不相等時,它返回 true。為確定兩個運算數(shù)是否相等,這兩個運算符都會進(jìn)行類型轉(zhuǎn)換。

執(zhí)行類型轉(zhuǎn)換的規(guī)則如下:

  • 如果一個運算數(shù)是 Boolean 值,在檢查相等性之前,把它轉(zhuǎn)換成數(shù)字值。false 轉(zhuǎn)換成 0,true 為 1。

  • 如果一個運算數(shù)是字符串,另一個是數(shù)字,在檢查相等性之前,要嘗試把字符串轉(zhuǎn)換成數(shù)字。

  • 如果一個運算數(shù)是對象,另一個是字符串,在檢查相等性之前,要嘗試把對象轉(zhuǎn)換成字符串。

  • 如果一個運算數(shù)是對象,另一個是數(shù)字,在檢查相等性之前,要嘗試把對象轉(zhuǎn)換成數(shù)字。

在比較時,該運算符還遵守下列規(guī)則:

  • 值 null 和 undefined 相等。

  • 在檢查相等性時,不能把 null 和 undefined 轉(zhuǎn)換成其他值。

  • 如果某個運算數(shù)是 NaN,等號將返回 false,非等號將返回 true。

  • 如果兩個運算數(shù)都是對象,那么比較的是它們的引用值。如果兩個運算數(shù)指向同一對象,那么等號返回 true,否則兩個運算數(shù)不等。

重要提示:即使兩個數(shù)都是 NaN,等號仍然返回 false,因為根據(jù)規(guī)則,NaN 不等于 NaN。三門峽婦科醫(yī)院http://www.smxrlyy.com/

下表列出了一些特殊情況,以及它們的結(jié)果:

表達(dá)式
null == undefinedtrue
"NaN" == NaNfalse
5 == NaNfalse
NaN == NaNfalse
NaN != NaNtrue
false == 0true
true == 1true
true == 2false
undefined == 0false
null == 0false
"5" == 5true

全等號和非全等號

等號和非等號的同類運算符是全等號和非全等號。這兩個運算符所做的與等號和非等號相同,只是它們在檢查相等性前,不執(zhí)行類型轉(zhuǎn)換。

全等號由三個等號表示(===),只有在無需類型轉(zhuǎn)換運算數(shù)就相等的情況下,才返回 true。

例如:

var sNum = "66";
var iNum = 66;
alert(sNum == iNum);	//輸出 "true"
alert(sNum === iNum);	//輸出 "false"

在這段代碼中,第一個 alert 使用等號來比較字符串 "66" 和數(shù)字 66,輸出 "true"。如前所述,這是因為字符串 "66" 將被轉(zhuǎn)換成數(shù)字 66,,然后才與另一個數(shù)字 66 進(jìn)行比較。第二個 alert 使用全等號在沒有類型轉(zhuǎn)換的情況下比較字符串和數(shù)字,當(dāng)然,字符串不等于數(shù)字,所以輸出 "false"。

非全等號由感嘆號加兩個等號(!==)表示,只有在無需類型轉(zhuǎn)換運算數(shù)不相等的情況下,才返回 true。

例如:

var sNum = "66";
var iNum = 66;
alert(sNum != iNum);	//輸出 "false"
alert(sNum !== iNum);	//輸出 "true"

這里,第一個 alert 使用非等號,把字符串 "66" 轉(zhuǎn)換成數(shù)字 66,使得它與第二個運算數(shù) 66 相等。因此,計算結(jié)果為 "false",因為兩個運算數(shù)是相等的。第二個 alert 使用的非全等號。該運算是在問:"sNum" 與 "iNum" 不同嗎?這個問題的答案是:是的(true),因為 sNum 是字符串,而 iNum 是數(shù)字,它們當(dāng)然不同。

感謝各位的閱讀,以上就是“ECMAScript等性運算符的作用是什么”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對ECMAScript等性運算符的作用是什么這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關(guān)知識點的文章,歡迎關(guān)注!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI