比較運算子

2022-09-13 16:18:11 字數 2461 閱讀 2084

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特殊情況,如果是字串的比較,實際上是編碼位置的比較,實際上,計算機中最終執行的都是二進位制,所以計算中本身是沒有任何的中文,或者字母的。所以,我們看到的中文,字母,實際上是別人提前把文字...