最新的Web開發教程
 

JavaScript比較和邏輯運算符


比較和邏輯運算符用來測試truefalse


比較運算符

比較運算符在邏輯語句用來確定變量或值之間的平等或差異。

鑑於x = 5 ,下表說明了比較運算符:

操作者 描述 對比 返回 嘗試一下
== 等於 x == 8false 嘗試一下 ”
x == 5true 嘗試一下 ”
x == "5"true 嘗試一下 ”
=== 同等價值和平等的類型 x === 5true 嘗試一下 ”
x === "5"false 嘗試一下 ”
!= 不平等 x != 8true 嘗試一下 ”
!== 不等於價值或不等於類型 x !== 5false 嘗試一下 ”
x !== "5"true 嘗試一下 ”
x !== 8true 嘗試一下 ”
> 比...更棒 x > 8false 嘗試一下 ”
< 少於 x < 8true 嘗試一下 ”
>= 大於或等於 x >= 8false 嘗試一下 ”
<= 小於或等於 x <= 8true 嘗試一下 ”

它可以如何使用

比較運營商可以在條件語句中使用值進行比較,並根據結果採取行動:

if (age < 18) text = "Too young";

您將了解更多有關本教程的下一章使用條件語句。


邏輯運算符

邏輯運算符被用來確定變量或值之間的邏輯。

鑑於x = 6和y = 3 ,下表說明了邏輯運算:

操作者 描述 嘗試一下
&&and (x < 10 && y > 1) is true 嘗試一下 ”
||or(x == 5 || y == 5) is false 嘗試一下 ”
!not !(x == y) is true 嘗試一下 ”

條件(三元)運算符

的JavaScript還包含一個值分配給基於一些條件的變量的條件運算。

句法

variablename = ( condition ) ? value1 : value2  

var voteable = (age < 18) ? "Too young":"Old enough";
試一試»

如果變量年齡為18歲以下的值,變量voteable的值將是“太年輕”,否則voteable的值將是“老足夠”。


比較不同類型

比較不同類型的數據可能會出現意想不到的結果。

在比較了一些字符串,JavaScript的做比較時將字符串轉換為數字。 空字符串轉換為0的非數字字符串轉換成NaN這始終是假的。

案件 嘗試
2 < 12true 嘗試一下 ”
2 < "12"true 嘗試一下 ”
2 < "John"false 嘗試一下 ”
2 > "John"false 嘗試一下 ”
2 == "John"false 嘗試一下 ”
"2" < "12"false 嘗試一下 ”
"2" > "12"true 嘗試一下 ”
"2" == "12"false 嘗試一下 ”

當比較兩個串,“2”,將不是“12”時,因為(按字母順序)1小於2。

為了確保正確的結果,變量應該被轉換為適當的類型比較之前:

age = Number(age);
if (isNaN(age)) {
    voteable = "Error in input";
} else {
    voteable = (age < 18) ? "Too young" : "Old enough";
}
試一試»

JavaScript的位運算符

運營商位在32位的數字工作。

在操作任何數字操作數被轉換成一個32位的數字。

結果被轉換回一個JavaScript號碼。

操作者 描述 與...一樣 結果 十進制
& AND x = 5 & 1 0101 & 0001 0001 1
| OR x = 5 | 1 0101 | 0001 0101 5
~ NOT x = ~ 5  ~0101 1010 10
^ XOR x = 5 ^ 1 0101 ^ 0001 0100 4
<< Left shift x = 5 << 1 0101 << 1 1010 10
>> Right shift x = 5 >> 1 0101 >> 1 0010 2

上述使用4位無符號的示例表。 但JavaScript使用32位有符號數。
正因為如此,在JavaScript中,〜5將不會返回10.它將返回-6:
〜00000000000000000000000000000101將返回11111111111111111111111111111010

x = 5 & 1;

結果以x:

1
試一試»

x = 5 | 1;

結果以x:

5
試一試»

x = 5 >> 1;

結果以x:

2
試一試»

x = 5 << 1;

結果以x:

10
試一試»

x = ~ 5;

結果以x:

-6
試一試»

自測練習用!

練習1» 練習2» 練習3» 練習4» 練習5» 練習6»