Skip to content

運算子(Operator)

在程式設計中,運算子是用來對資料進行運算、比較、邏輯判斷等操作的符號。

常見的包括生活中常用的加減乘除、比較大小、邏輯運算等。在 JavaScript 中,運算子種類繁多,以下是一些常見的運算子及其用法。


1. 算術運算子

用於數值的加減乘除與取餘數。

運算子說明範例結果
+加法1 + 23
-減法5 - 32
*乘法2 * 36
/除法6 / 23
%取餘數7 % 31
**次方2 ** 38
javascript
let a = 10;
let b = 3;
console.log(a + b); // 13
console.log(a % b); // 1

2. 指派運算子

用來給變數賦值,或在原有基礎上進行運算。

運算子說明範例結果等價
=賦值a = 55
+=加後賦值a += 27a = a + 2
-=減後賦值a -= 16a = a - 1
*=乘後賦值a *= 318a = a * 3
/=除後賦值a /= 29a = a / 2
%=餘數後賦值a %= 41a = a % 4

3. 比較運算子

用來比較兩個值,結果會回傳布林值(true/false)。

運算子說明範例結果
==等於3 == '3'true
===全等3 === '3'false
!=不等於5 != 3true
!==全不等5 !== '5'true
>大於5 > 2true
<小於1 < 2true
>=大於等於3 >= 3true
<=小於等於2 <= 1false

這邊要特別注意,由於 JavaScript 是動態型別語言,在其他語言中 3 == '3' 會被視為不相等,但在 JavaScript 中,它會幫你自動轉型,所以會被視為相等。

但這樣會造成早期一些程式的判斷錯誤與混淆,因此後來出現了 === 運算子,意義是指除了值相等外,型別也必須相同。

所以像是 3 === '3' 會被因為數字3與字串'3'型別不同而被視為不相等。

TIP

JavaScript 是 Brendan Eich 在 1995 年僅用10天時間開發出來的語言,有很多設計上的妥協與不妥善之處。但因為它的泛用性,所以直到現在仍然被廣泛使用。


4. 邏輯運算子

用於多個條件的邏輯判斷。

運算子說明範例結果
&&且(AND): 左右兩側皆為 true 則 truetrue && falsefalse
||或(OR): 左右任一側為 true 則 truetrue || falsetrue
!非(NOT): 反轉結果,true 則 false, false 則 true!truefalse
^XOR(異或): 兩側不同則 true,相同則 falsetrue ^ falsetrue

5. 其他常見運算子

三元運算子(條件運算子)

語法:條件 ? 值1 : 值2 或條件為真則返回值1,否則返回值2。

javascript
let age = 18;
let result = (age >= 18) ? '成年' : '未成年';
console.log(result); // "成年"

斷路運算子(Short-circuit evaluation)

在使用 &&|| 時,如果左側已經能決定結果,則右側不會被執行。

javascript
let age = 18;

// 若 && 左側的條件為 true, 則會執行右側的程式碼
// 若 && 左側的條件為 false, 則右側不會被執行
age >= 18 && console.log('成年'); // 如果 age >= 18 才會印出 "成年",否則什麼都不做

// 若 || 左側的條件為 true, 則右側不會被執行
// 若 || 左側的條件為 false, 則會執行右側
age < 18 || console.log('已成年'); // 如果 age >= 18 才會印出 "已成年",否則什麼都不做

typeof 運算子

用來取得變數的型別。

javascript
console.log(typeof 123); // "number"
console.log(typeof 'hi'); // "string"

6. 位元運算子(進階)

位元運算子用於二進位的運算,較少在一般開發中使用。暫時先不深入。

運算子說明
&AND
|OR
^XOR
~NOT
<<左移
>>右移

小結

JavaScript 的運算子種類豐富,建議多加練習與實作,熟悉各種運算子的用法,能讓你寫出更靈活、強大的程式!

Wrirten by Aaron Su