javascript中的相等操作符

2021-09-01 02:56:23 字數 601 閱讀 8342

if ( == false)   // 輸出1

if ({} == false) // 不輸出

if () // 輸出3

if([1] == [1]) // 不輸出

相等運算子用來比較相同型別的資料時,與嚴格相等運算子完全一樣。

原始型別的值會轉換成數值再進行比較。

物件(包括陣列和函式)與原始型別的值比較時,物件轉換成原始型別的值,再進行比較。

高程第51頁很好的解釋了在轉換不同的資料型別時,相等和不相等操作符遵循的基本規則:

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

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

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

如果兩個運算元都是物件,則比較它們是不是同乙個物件如果兩個運算元都指向同乙個物件。

1和2 會將false轉換為0, 3則轉為boolean,4中引用位址不同

JavaScript中的相等

ecmascript提供了兩組操作符 1.相等和不相等 特點 先轉換再比較 2.全等和不全等 特點 僅比較而不轉換 根據ecmascript規範 null 和 undefined是相等的 null undefined true null undefined false相同資料型別比較規則 如果兩個運...

Javascript基礎 09DOM高階操作

1 image物件 1.1 image物件的建立方式 1 通過建構函式方式建立 var img new image 500 500 第乙個引數為寬度,第二個引數為高度 2 通過 document.createelement 建立img物件 var img document.createelement...

3 5 7 Javascript之相等操作符

相等和不相等 相等 和不相等 在比較的時候都會先轉換運算元然後再判斷相等性 console.log a 97 false a 會先轉換為數值再比較,nan console.log false 0 true false會先轉換為0再比較 console.log null undefined true全...