Skip to content

運算子

JavaScript 的運算子(Operators)是一組用來執行不同運算的符號或關鍵字。運算子可以對變數、常數或表達式進行操作,並返回一個結果。以下是 JavaScript 中運算子的詳細說明,包括算術運算子、賦值運算子、比較運算子、邏輯運算子、位元運算子、條件(三元)運算子、字串運算子,以及特殊的 typeofinstanceof 運算子。

1. 算術運算子

算術運算子用來執行基本的數學計算,包括加法、減法、乘法、除法等。

  • +(加法):對兩個數字或字串進行加法運算,或者將兩個字串拼接。
    let sum = 5 + 3;  // 結果是 8
    let concatenatedString = "Hello, " + "world!";  // 結果是 "Hello, world!"
    
  • -(減法):計算兩個數字的差。
    let difference = 10 - 6;  // 結果是 4
    
  • *(乘法):計算兩個數字的乘積。
    let product = 4 * 7;  // 結果是 28
    
  • /(除法):計算兩個數字的商。
    let quotient = 20 / 5;  // 結果是 4
    
  • %(取餘數):計算兩個數字的餘數。
    let remainder = 10 % 3;  // 結果是 1
    
  • **(指數運算):計算一個數字的指數次方。
    let power = 2 ** 3;  // 結果是 8
    

1.1 遞增與遞減運算子

  • ++(遞增運算子):將變數的值加 1。
    let a = 5;
    a++;  // a 現在是 6
    
  • --(遞減運算子):將變數的值減 1。
    let b = 5;
    b--;  // b 現在是 4
    

2. 賦值運算子

賦值運算子用於給變數分配值。最基本的賦值運算子是 =,除此之外還有其他複合賦值運算子。

2.1 =(簡單賦值):將右邊的值分配給左邊的變數。

let x = 10;

2.2 複合賦值運算子:這些運算子將算術運算與賦值結合起來。

  • +=:加法賦值運算子。
    let x = 10;
    x += 5;  // x 現在是 15
    
  • -=:減法賦值運算子。
    let x = 10;
    x -= 3;  // x 現在是 7
    
  • *=:乘法賦值運算子。
    let x = 10;
    x *= 2;  // x 現在是 20
    
  • /=:除法賦值運算子。
    let x = 10;
    x /= 2;  // x 現在是 5
    
  • %=:取餘數賦值運算子。
    let x = 10;
    x %= 4;  // x 現在是 2
    

3. 比較運算子

比較運算子用於比較兩個值,並返回一個布林值(truefalse)。

  • ==(等於):比較兩個值是否相等,會進行類型轉換。
    console.log(5 == '5');  // 結果是 true
    
  • ===(全等於):比較兩個值是否嚴格相等,不進行類型轉換。
    console.log(5 === '5');  // 結果是 false
    
  • !=(不等於):比較兩個值是否不相等,會進行類型轉換。
    console.log(5 != '5');  // 結果是 false
    
  • !==(全不等於):比較兩個值是否嚴格不相等,不進行類型轉換。
    console.log(5 !== '5');  // 結果是 true
    
  • >(大於):檢查左邊的值是否大於右邊的值。
    console.log(10 > 5);  // 結果是 true
    
  • <(小於):檢查左邊的值是否小於右邊的值。
    console.log(10 < 5);  // 結果是 false
    
  • >=(大於等於):檢查左邊的值是否大於或等於右邊的值。
    console.log(10 >= 10);  // 結果是 true
    
  • <=(小於等於):檢查左邊的值是否小於或等於右邊的值。
    console.log(10 <= 5);  // 結果是 false
    

4. 邏輯運算子

邏輯運算子用於布林值之間的邏輯操作,常用於條件語句中。 * &&(與運算):只有當兩個操作數都為真時,結果才為真。

console.log(true && false);  // 結果是 false
* ||(或運算):只要有一個操作數為真,結果就為真。
console.log(true || false);  // 結果是 true
* !(非運算):將布林值反轉。
console.log(!true);  // 結果是 false

5. 位元運算子

位元運算子直接操作數字的二進位表示。常見的位元運算子包括:

  • &(按位與):對應位的兩個位元都為 1,結果位才為 1。
    console.log(5 & 1);  // 結果是 1
    
  • |(按位或):對應位的任何一個位元為 1,結果位就為 1。
    console.log(5 | 1);  // 結果是 5
    
  • ^(按位異或):對應位的位元不同,結果位為 1。
    console.log(5 ^ 1);  // 結果是 4
    
  • ~(按位非):對每個位元取反。
    console.log(~5);  // 結果是 -6
    
  • <<(左移):將數字的位元向左移動,低位補 0。
    console.log(5 << 1);  // 結果是 10
    
  • >>(右移):將數字的位元向右移動,高位補 0 或 1(根據符號)。
    console.log(5 >> 1);  // 結果是 2
    

6. 條件(三元)運算子

條件運算子(?:)是唯一的三元運算子,用於簡化條件語句。

let age = 20;
let canVote = (age >= 18) ? 'Yes' : 'No';
console.log(canVote);  // 結果是 "Yes"
* 如果條件為真,返回冒號前的值;否則,返回冒號後的值。

7. 字串運算子

字串運算子主要是加法運算子(+),用於拼接字串。

let greeting = "Hello" + " " + "world!";
console.log(greeting);  // 結果是 "Hello world!"

8. typeof 運算子

typeof 運算子用於檢查變數的類型。

let num = 42;
console.log(typeof num);  // 結果是 "number"

let str = "Hello";
console.log(typeof str);  // 結果是 "string"

9. instanceof 運算子

instanceof 運算子用於檢查一個物件是否是某個類別的實例。

let date = new Date();
console.log(date instanceof Date);  // 結果是 true

總結

JavaScript 的運算子涵蓋了從基本數學計算到複雜邏輯操作的各種功能。熟悉這些運算子及其用法是學習和掌握 JavaScript 的重要基礎。理解如何使用這些運算子可以幫助你編寫更高效、更可讀的代碼。