JS中的雙等和全等號比較機制

2022-08-10 03:18:10 字數 786 閱讀 9738

判斷等式兩邊是否有nan數,如果有,一律判定為false

2.1 一邊為boolean型別,一邊為表示式

判斷表示式的布林值與boolean進行比較

2.2 一邊為number型別,一邊為boolean型別

將boolean型別轉換為number,false = 0,true = 1,然後進行比較

遇到nul或者undefined,不進行資料型別轉換,二者之間的比較,返回true

4.1 另一邊同樣是string

直接對等式兩邊的值進行比較

4.2 另一邊為number型別

將string轉換為number型別進行比較

4.3 另一邊是boolean型別

同時將string型別和boolean型別轉換為number型別,然後進行比較 (false = 0,true = 1)

4.4 另一邊是物件或者陣列

則需要呼叫tostring()方法或者valueof()方法轉換為簡單型別,然後進行比較

物件轉換為簡單型別時會有限呼叫valueof()方法,如果能與簡單型別進行直接比較,則不再呼叫tostring()方法,否則呼叫tostring()方法

兩者必須完全相等才為true

摘自: 

JS中的雙等號 比較機制!

三等號 是嚴格相等,而雙等號 在判斷相等的過程中會進行隱性轉化。比如 1 1就會返回true。首先判斷雙等號兩邊是否有nan,如果有的話,則一律返回false。如果有的話則將true轉化為1,false轉化為0。遇到null或者undefined,則不會進行型別轉換,它們相互的比較都返回true。分...

js基礎 11 相等和全等的區別

在進行比較前,會先進行強制轉換運算元 1,有乙個運算元是布林值,則轉化為數字,false變成0,true變成1 2,乙個是數字,乙個是字串,則字串轉化為對應數字 3,乙個是物件,乙個不是,則呼叫物件的valueof 方法,用得到的基本型別值比較值得注意的是 1,underfined和null不進行強...

JS中的全等和等於的區別

1.等於和不等於在判斷時遵循的一些規則 如果有乙個運算元是布林值,則在比較相等特性之前先將其轉化為數值型別 false 0 true 1 如果有乙個運算元是字串,另乙個運算元是數值,在比較相等之前會先將字串轉換成數值 如果乙個運算元是物件,另乙個不是,則會呼叫物件的valueof 方法,用得到的基本...