JavaScript 比較和邏輯運算子
比較和邏輯運算子用於測試 true
或 false
。
比較運算子
比較運算子用於邏輯語句中,以確定變數或值之間的相等性或差異。
假設 x = 5
,下表解釋了比較運算子
運算子 | 描述 | 比較 | 返回 | 試一試 |
---|---|---|---|---|
== | 等於 | x == 8 | false | 試一試 » |
x == 5 | true | 試一試 » | ||
x == "5" | true | 試一試 » | ||
=== | 值相等且型別相等 | x === 5 | true | 試一試 » |
x === "5" | false | 試一試 » | ||
!= | 不等於 | x != 8 | true | 試一試 » |
!== | 值不相等或型別不相等 | x !== 5 | false | 試一試 » |
x !== "5" | true | 試一試 » | ||
x !== 8 | true | 試一試 » | ||
> | 大於 | x > 8 | false | 試一試 » |
< | 小於 | x < 8 | true | 試一試 » |
>= | 大於或等於 | x >= 8 | false | 試一試 » |
<= | 小於或等於 | x <= 8 | true | 試一試 » |
如何使用
比較運算子可用於條件語句中,以比較值並根據結果執行操作
if (age < 18) text = "未成年,禁止飲酒";
您將在本教程的下一章中瞭解更多關於條件語句的用法。
邏輯運算子
邏輯運算子用於確定變數或值之間的邏輯關係。
假設 x = 6
和 y = 3
,下表解釋了邏輯運算子
運算子 | 描述 | 示例 | 試一試 |
---|---|---|---|
&& | and | (x < 10 && y > 1) 為 true | 試一試 » |
|| | 或 | (x == 5 || y == 5) 為 false | 試一試 » |
! | not | !(x == y) 為 true | 試一試 » |
條件(三元)運算子
JavaScript 還包含一個條件運算子,它根據某個條件將值賦給一個變數。
語法
變數名 = (條件) ? 值1:值2
示例
let voteable = (age < 18) ? "未成年":"已成年";
自己動手試一試 »
如果變數 age 的值小於 18,則變數 voteable 的值將為 "未成年",否則 voteable 的值將為 "已成年"。
比較不同型別
比較不同型別的資料可能會產生意外的結果。
當比較字串和數字時,JavaScript 會在比較時將字串轉換為數字。空字串轉換為 0。非數字字串轉換為 NaN
,它始終為 false
。
情況 | 值 | 嘗試 |
---|---|---|
2 < 12 | true | 試一試 » |
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 = "輸入不是數字";
} else {
voteable = (age < 18) ? "未成年" : "已成年";
}
自己動手試一試 »
空值合併運算子 (??)
??
運算子如果第一個引數不是空值(null
或 undefined
),則返回第一個引數。
否則返回第二個引數。
Nullish coalescing 運算子自 2020 年 3 月起在所有瀏覽器中得到支援
Chrome 80 | Edge 80 | Firefox 72 | Safari 13.1 | Opera 67 |
2020 年 2 月 | 2020 年 2 月 | 2020 年 1 月 | 2020 年 3 月 | 2020 年 3 月 |
可選鏈運算子 (?.)
?. 運算子在物件 undefined
或 null
時返回 undefined
(而不是丟擲錯誤)。
示例
// 建立一個物件
const car = {type:"Fiat", model:"500", color:"white"};
// 請求汽車名稱
document.getElementById("demo").innerHTML = car?.name;
自己動手試一試 »
Optional chaining 運算子自 2020 年 3 月起在所有瀏覽器中得到支援
Chrome 80 | Edge 80 | Firefox 72 | Safari 13.1 | Opera 67 |
2020 年 2 月 | 2020 年 2 月 | 2020 年 1 月 | 2020 年 3 月 | 2020 年 3 月 |