j**ascript一共提供了8個比較運算子。
j**ascript引擎內部首先比較首字元的unicode碼點。如果相等,在比較第二個字元的unicode碼點,以此類推。
如果兩個運運算元都不是字串,分為以下兩種情況
(1)原始型別值
如果兩個運運算元都是原始型別的值,則是先轉成數值再比較。
5 > '4'
// 等同於 5 > number('4')
任何值(包括nan本身)與nan比較,返回的都是false。
(2)物件
如果運運算元是物件,會轉為原始型別的值,再進行比較。物件轉換成原始型別的值,演算法是先呼叫valueof方法;如果返回的還是物件,再接著呼叫tostring方法。
var x = [2];
x > "11" // true
// 等同於 [2].valueof().tostring() > "11"
// 即"2" > "11"
x.valueof = function()
x > "11" // false
// 等同於 [2].valueof() > "11"
// 即"1" > "11"
j**ascript提供兩種相等運算子:
和=。簡單的,它們的區別是相等運算子(
)比較兩個值是否相等,嚴格相等運算子()比較它們是否為同乙個值。如果兩個值不是同一型別,嚴格相等運算子直接返回false,而相等運算子會將它們轉換成同一型別,再用嚴格相等運算子進行比較。
(1)不同型別的值
如果兩個值型別不同,直接返回false。
1 === "1" // false
true === "true" // false
true == "true" // false
true == "1" //true
(2)同一類的原始型別
同一型別的原始型別的值(數值、字串、布林值)比較時,值相等就返回true,值不同就返回false。nan與任何值都不相等,包括自身。另外,正0等於負0。
(3)復合型別值
兩個復合型別(物件、陣列、函式)的資料比較時,不是比較它們的值是否相等,而是比較它們是否指向同乙個位址。
=== // false
{} === {} // false
(function() {} === function() {}) // false
var v1 = {};
v2 = v1;
v1 === v2; // true
**(4)undefined和null**
undefined和null與自身嚴格相等。
```js
undefined === undefined // true
null === null // true
由於變數宣告後預設值是undefined,因此兩個只宣告沒有賦值的變數是相等的。
var v1;
var v2;
v1 === v2 // true
(6)相等運算子
相等運算子用來比較相同型別的資料是,與嚴格相等運算子完全一樣。
1 == 1.0
1 === 1.0
比較不同型別的資料是,相等運算子會先將資料進行型別轉換,然後再用嚴格相等運算子比較。
1 == true // true
// 等同於 1 === number(true)
// 物件和數值比較時,物件轉為數值
[1] == 1 //true
// 等同於 number([1]) == 1
// 物件和字串比較時,物件轉為字串
[1] == "1" // true
// 等同於string([1]) == "1"
[1, 2] == "1,2" // true
// 物件和布林值比較時,兩邊都轉為數值
[1] == true // true
[2] == true // false
false == null //false
false == undefined // false
0 == null // false
0 == undefined // false
undefined == null // true
由於相等運算子隱藏的型別轉換,會帶來一些違反直覺的結果。因此建議不要使用相等運算子,最好只使用嚴格相等運算子。 mysql運算子,比較運算子
我也是菜鳥,也是新手,一起學習,一起進步,加油 首先 比較運算子,進行比較之後的 結果如果為真 返回1,結果為假 返回 0 一下為常用的,最基礎的一些沒有列出來 或 不等於 null 的安全等於 null safe between 存在於指定範圍 in存在於指定集合 is null 為 null i...
python運算子 比較運算子
比較運算子的運算結果會得到乙個bool型別,也就是邏輯判定,要麼是真true,要不就是false 大於 小於 不說了,看看不等於,用 表示。大於等於 和小於等於 也不多說了。result 10 9 print result 比較兩個值是否相等,用 表示。注意它和 is 是有區別的 print 10 ...
8 運算子 比較運算子
a 4 b 7 print a b false print a b true 不等於 print a b true特殊情況,如果是字串的比較,實際上是編碼位置的比較,實際上,計算機中最終執行的都是二進位制,所以計算中本身是沒有任何的中文,或者字母的。所以,我們看到的中文,字母,實際上是別人提前把文字...