邏輯運算子 (Logical Operators)
邏輯運算子用來做布林值 (boolean) 的運算,運算結果傳回 true 或 false。
運算子 |
語法 |
說明 |
&& |
a && b |
如果 a 和 b 都是 true,就會傳回 true, 否則傳回 false |
|| |
a || b |
如果 a 或 b 是 true,就會傳回 true,否則傳回 false |
! |
! a |
如果 a 是 true,就傳回 false,否則傳回 true |
在真假判斷式中,所有東西都可以轉換為布林值,而除了以下運算元可以被轉換為 false,其他的值都是 true。
Undefined
Null
+0
, -0
, or NaN
空字串 ""
或 ''
1 2 3 4 5
| Boolean(false) Boolean("false") Boolean("0") Boolean("") Boolean("''")
|
但 &&
和 ||
還有比較特別的地方,如果運算元的值不是布林值,實際上會傳回其中一個運算元的值。
運算子 |
語法 |
說明 |
&& |
a && b |
假如 a 可以被轉換成 true 的話,則回傳第二個數值,否則回傳第一個數值。 |
|| |
a || b |
假如 a 可以被轉換成 true 的話,則回傳第一個數值,否則回傳第二個數值。 |
範例
Logical AND (&&
)
1 2 3 4 5 6 7 8 9
| a1 = true && true a2 = true && false a3 = false && true a4 = false && (3 == 4) a5 = 'Cat' && 'Dog' a6 = false && 'Cat' a7 = 'Cat' && false a8 = '' && false a9 = false && ''
|
Logical OR (||
)
1 2 3 4 5 6 7 8 9 10
| o1 = true || true o2 = false || true o3 = true || false o4 = false || (3 == 4) o5 = 'Cat' || 'Dog' o6 = false || 'Cat' o7 = 'Cat' || false o8 = '' || false o9 = false || '' o10 = false || varObject
|
Logical NOT (!
)
1 2 3 4
| n1 = !true n2 = !false n3 = !'' n4 = !'Cat'
|
Double NOT (!!
)
1 2 3 4 5 6
| n1 = !!true n2 = !!{} n3 = !!(new Boolean(false)) n4 = !!false n5 = !!"" n6 = !!Boolean(false)
|
參考文獻
https://developer.mozilla.org/zh-TW/docs/Web/JavaScript/Guide/Expressions_and_operators
https://ithelp.ithome.com.tw/articles/10191343
https://www.fooish.com/javascript/operator.html