您好,登錄后才能下訂單哦!
這篇文章主要講解了“ECMAScript等性運算符的作用是什么”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“ECMAScript等性運算符的作用是什么”吧!
判斷兩個變量是否相等是程序設計中非常重要的運算。在處理原始值時,這種運算相當簡單,但涉及對象,任務就稍有點復雜。
ECMAScript 提供了兩套等性運算符:等號和非等號用于處理原始值,全等號和非全等號用于處理對象。
在 ECMAScript 中,等號由雙等號(==)表示,當且僅當兩個運算數相等時,它返回 true。非等號由感嘆號加等號(!=)表示,當且僅當兩個運算數不相等時,它返回 true。為確定兩個運算數是否相等,這兩個運算符都會進行類型轉換。
執行類型轉換的規則如下:
如果一個運算數是 Boolean 值,在檢查相等性之前,把它轉換成數字值。false 轉換成 0,true 為 1。
如果一個運算數是字符串,另一個是數字,在檢查相等性之前,要嘗試把字符串轉換成數字。
如果一個運算數是對象,另一個是字符串,在檢查相等性之前,要嘗試把對象轉換成字符串。
如果一個運算數是對象,另一個是數字,在檢查相等性之前,要嘗試把對象轉換成數字。
在比較時,該運算符還遵守下列規則:
值 null 和 undefined 相等。
在檢查相等性時,不能把 null 和 undefined 轉換成其他值。
如果某個運算數是 NaN,等號將返回 false,非等號將返回 true。
如果兩個運算數都是對象,那么比較的是它們的引用值。如果兩個運算數指向同一對象,那么等號返回 true,否則兩個運算數不等。
重要提示:即使兩個數都是 NaN,等號仍然返回 false,因為根據規則,NaN 不等于 NaN。三門峽婦科醫院http://www.smxrlyy.com/
下表列出了一些特殊情況,以及它們的結果:
表達式 | 值 |
---|---|
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 |
等號和非等號的同類運算符是全等號和非全等號。這兩個運算符所做的與等號和非等號相同,只是它們在檢查相等性前,不執行類型轉換。
全等號由三個等號表示(===),只有在無需類型轉換運算數就相等的情況下,才返回 true。
例如:
var sNum = "66"; var iNum = 66; alert(sNum == iNum); //輸出 "true" alert(sNum === iNum); //輸出 "false"
在這段代碼中,第一個 alert 使用等號來比較字符串 "66" 和數字 66,輸出 "true"。如前所述,這是因為字符串 "66" 將被轉換成數字 66,,然后才與另一個數字 66 進行比較。第二個 alert 使用全等號在沒有類型轉換的情況下比較字符串和數字,當然,字符串不等于數字,所以輸出 "false"。
非全等號由感嘆號加兩個等號(!==)表示,只有在無需類型轉換運算數不相等的情況下,才返回 true。
例如:
var sNum = "66"; var iNum = 66; alert(sNum != iNum); //輸出 "false" alert(sNum !== iNum); //輸出 "true"
這里,第一個 alert 使用非等號,把字符串 "66" 轉換成數字 66,使得它與第二個運算數 66 相等。因此,計算結果為 "false",因為兩個運算數是相等的。第二個 alert 使用的非全等號。該運算是在問:"sNum" 與 "iNum" 不同嗎?這個問題的答案是:是的(true),因為 sNum 是字符串,而 iNum 是數字,它們當然不同。
感謝各位的閱讀,以上就是“ECMAScript等性運算符的作用是什么”的內容了,經過本文的學習后,相信大家對ECMAScript等性運算符的作用是什么這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。