1. 程式人生 > >javascript之相等與不等運算

javascript之相等與不等運算

javascript

在 javascript 中,可以使用 == 來比較兩個數據是否相等,如果兩個數據的類型不同,那麽,將在進行轉換後進行比較,轉換的規則如下:
如果其中一個操作數的類型為 Boolean ,那麽,首先將它轉換為數字類型,false 轉換為 0, true 將轉換為 1。
如果其中一個操作數的類型是字符串,另外一個為數字類型,那麽,將字符串轉換為數字進行比較。
如果其中一個操作數的類型是字符串,另外一個為 object 類型,那麽,將調用對象的 toString 方法之後,比較字符串。
如果其中一個操作數的類型是數字類型,另外一個為 object 類型,那麽,將對象轉換為數值後進行數字比較。 以下的規定了一些特殊的比較:
null 和 undefined 是相等的。
null 和 undefined 不會轉換為任何其他類型
如果任何一個操作的結果為 NaN,那麽相等比較返回 false,不相等比較返回 true。註意,即使兩個操作數都為 NaN,返回結果一樣是 false,也就是說,NaN 不等於 NaN。
如果兩個操作數都是對象,那麽比較它們引用的值,如果引用同一個對象,那麽,返回真,否則,返回假。 alert(null == undefined);
// true alert(undefined == null);
// true alert(true == 1);
// true alert(false == 0);
// true alert(true == 2);
// false var obj = {}; alert(10 == obj);
// false
完全相同的比較 === 和不完全相等
!== 完全相同的比較用來比較不進行轉換是否相等,
例如: var a = "100"; var b = 100; alert(a == b);
// true alert(a === b);
// false == 比較將返回真,因為 “100” 首先轉換為數字 100, 然後與數字 100 進行比較,結果相等。 === 比較將返回假,因為字符串 ”100” 不經過轉換的話,與數字 100 不相等。 !== 用於比較在不轉換的情況下,是否不相等。
alert(a != b);
// false alert(a !== b);

// true

轉自https://www.itdongshi.com/show/205.html

javascript之相等與不等運算