js判斷2個值是否相等的規則

2021-09-02 00:26:53 字數 913 閱讀 4216

1. 如果 x 不是正常值(比如丟擲乙個錯誤),中斷執行。

2. 如果 y 不是正常值,中斷執行。

3. 如果 type

(x) 與 type

(y) 相同,執行嚴格相等運算 x === y 。

4. 如果 x 是 null , y 是 undefined ,返回 true 。

5. 如果 x 是 undefined , y 是 null ,返回 true 。

6. 如果 type

(x) 是數值, type

(y) 是字串,返回 x ==

tonumber

(y) 的結果。

7. 如果 type

(x) 是字串, type

(y) 是數值,返回 tonumber

(x)== y 的結果。

8. 如果 type

(x) 是布林值,返回 tonumber

(x)== y 的結果。

9. 如果 type

(y) 是布林值,返回 x ==

tonumber

(y) 的結果。

10. 如果 type

(x) 是字串或數值或 symbol 值, type

(y) 是物件,返回 x ==

toprimitive

(y) 的結果。

11. 如果 type

(x) 是物件, type

(y) 是字串或數值或 symbol 值,返回 toprimitive

(x)== y 的結果。

12. 返回 false 。

其中,toprimitive(obj)等價於:先計算obj.valueof(),如果結果為原始值,則返回此結果;否則.計算obj.tostring(),如果結果是原始值,則返回此結果;否則,丟擲異常

js 判斷兩個變數是否相等

判斷兩個變數是否相等是程式設計中非常重要的運算。在處理原始值時,這種運算相當簡單,但涉及物件,任務就稍有點複雜。ecmascript 提供了兩套等性運算子 等號和非等號用於處理原始值,全等號和非全等號用於處理物件。在 ecmascript 中,等號由雙等號 表示,當且僅當兩個運算數相等時,它返回 t...

JS判斷兩個變數是否相等

js中判斷兩個變數是否相等,是我們經常遇到的問題。今天我要 的問題是如何優雅的比較複雜變數。以上的方法都只能比較簡單變數,無法比較引用型別變數 如array,object 如何優雅判斷複雜變數是否相等?不多廢話,直接上 function isobject obj function isequal a...

Integer值判斷是否相等問題

今天發現了乙個奇怪的問題 integer allrightstotal 140 integer allrightslasttotal 140 if allrightstotal allrightsinit 最後得出的結論是 對於integer值比較有範圍規定 integer 型別的值在 128,12...