JS中的 和 的區別

2021-09-25 21:52:11 字數 1004 閱讀 8940

簡單來說:==代表相同,===代表嚴格相同。

這麼理解: 當==進行比較時候: 先檢查兩個運算元資料型別,如果相同, 則進行===比較, 如果不同, 則進行一次型別轉換, 轉換成相同型別後再進行比較, 而===比較時, 如果型別不同,直接就是false

雙等號==的比較過程:

如果兩個值型別相同,再進行三個等號(===)的比較;

在轉換不同的資料型別時,相等和不相等操作符遵循下列基本規則:

如果有乙個運算元是布林值,則在比較相等性之前先將其轉換為數值——false轉換為0,而true轉換為1

如果乙個運算元是字串,另乙個運算元是數值,在比較相等性之前先將字串轉換為數值;

如果乙個運算元是物件,另乙個運算元不是,則呼叫物件的valueof()方法,用得到的基本型別值按照前面的規則進行比較;

這兩個操作符在進行比較時則要遵循下列規則:

nullundefined是相等的;要比較相等性之前,不能將nullundefined轉換成其他任何值;

如果有乙個運算元是nan,則相等操作符返回false,而不相等操作符返回true。即使兩個運算元都是nan,相等操作符也返回false;因為按照規則,nan不等於nan

如果兩個運算元都是物件,則比較它們是不是同乙個物件。如果兩個運算元都指向同乙個物件,則相等操作符返回true;否則,返回false

js中的 和 的區別

我們一般將兩個量進行比較時,用的比較多,今天看到乙個小題是 undefined和null是否相等,console.log undefined null 的值 為什麼?有人說 ecmascript認為undefined是null派生出來的,所以輸出為true。也有人說 1 null表示 沒有物件 即該...

JS中的! ! 的用法和區別。

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 var num 1 var str 1 var test 1 test num true 相同型別 相同值 test num true 相同型別 相同值 test num false test與nu...

JS中的! ! 的用法和區別。

js 與 的區別 1 對於string,number等基礎型別,和 是有區別的 1 不同型別間比較,之比較 轉化成同一型別後的值 看 值 是否相等,如果型別不同,其結果就是不等 2 同型別比較,直接進行 值 比較,兩者結果一樣 2 對於array,object等高階型別,和 是沒有區別的 進行 指標...