Categories of Operators
運算子
JavaScript中有三種類別的運算子:
- 一元運算子 (Unary Operator)
- 二元運算子 (Binary Operator)
- 三元運算子 (Ternary Operator)
一元運算子
這些運算子作用於一個運算元(值),也就是作用於單個值上。例如 typeof
-(減號)、!(驚嘆號)等。 typeof
關鍵字會返回一個字符串值,表示所提供值的類型。
console.log(typeof 3) // Number
console.log(typeof "") // String
console.log(-10) // -10
console.log(!true) // false
二元運算子
這些運算子作用於兩個運算元(值)。大部分的運算子都屬於這個類別。你可能已經很熟悉其中一些。例如 +(加號)、-(減號)等。
console.log(2 + 2) // 4
console.log(3 - 1) // 2
console.log(1 - 2) // -1
三元運算子
這些運算子作用於三個運算元(值)。你可能已經聽說過這個術語了。你猜對了... 就是問號(?)和冒號(:)。目前為止,這是唯一具有這種功能的運算子。我們稍後在本文中會了解它的運作方式。
console.log(true ? "JavaScript" : "Java") // JavaScript
運算子的類型
以下是我將要討論的幾種運算子。這些並不是全部的運算子類型。
- 算術運算子 (Arithmetic)
- 邏輯運算子 (Logical)
- 比較運算子 (Comparison)
- 條件運算子 (Conditional)
算術運算子
💡 這些運算子執行數學運算。
這包括加法(+
)、減法(-
)、除法(/
)和乘法(*
)。如果你有基礎的數學知識,你應該對這些符號及其意義很熟悉,但還有其他一些算術符號具有你不知道的功能。
字串也可以使用 +
符號。這稱為字串連接。
console.log("Why" + "me") // Whyme,如果需要空格,你必須手動添加。
console.log("Why" + " me") // Why me
例如,如果你想找到除法運算的餘數,或者想從浮點數(十進制數字,JavaScript 沒有這種類型)中獲得整數(整數部分)。我們還有餘數運算子(%
)和取整運算子(//
)。
取整運算子(Floor operator)是雙斜線(//
),它忽略小數點後的任何值,無論該值是否大於0.5或小於0.5。
console.log(3.5) // 3
console.log(5.2) // 5
餘數運算子(Modulus operator)是百分比(%
)符號,返回除法運算的餘數。這在你想知道一個數字是奇數還是偶數時很有用。
console.log(3 % 2) // 1
console.log(5 % 3) // 2
邏輯運算子
💡 這些運算子用於操作**布林值**(boolean values)。
它們包括與(and)、或(or)和非(not)。在 JavaScript 中,它們用符號表示。因此,與(&&
)、或(||
) 和非(!
)。
&& 運算子代表邏輯與。它是一個二元運算子(作用於兩個值),只有在兩個值都為 true 時才返回 true。
console.log(false && false) // true
console.log(true && false) // false
console.log(2 < 4 && 3 > 4) // false
console.log(2 >= 4 || 8 == 8) // true
console.log(9 == "9" || 8 > 19) // true
console.log(9 === "9" && 4 > 5) // false
比較運算子
💡 大於符號(>)和小於符號(<)是傳統的「大於」和「小於」符號。
它們是二元運算子。應用它們會得到一個布林值,指示它們在這種情況下是否成立。字串可以以相同的方式進行比較。
console.log(2 < 4) // true
console.log(2 > 4) // false
console.log(4 >= 6) // false
console.log(5 <= 8) // true
條件運算子
這個運算子是一個三元運算子(作用於三個值)。它用一個問號和一個冒號來表示。它的工作方式是,如果條件為真,返回問號前面的值,否則返回冒號後面的值。
console.log(false ? "Python" : "JavaScript") // JavaScript
這是一種簡單的條件語句的書寫方式,它沒有其他條件。
不要使用嵌套的三元運算子。
不要在三元運算子內進行賦值操作。
💡 盡量保持三元運算子的簡潔和可讀性。