2024-06-09|閱讀時間 ‧ 約 27 分鐘

Typescript入門-Day5:運算符

算數運算子

算數運算子用於執行基本的數學操作。以下是 TypeScript 中常見的算數運算子:

  • +(加法):將兩個操作數相加。
  • -(減法):從第一個操作數中減去第二個操作數。
  • *(乘法):將兩個操作數相乘。
  • /(除法):將第一個操作數除以第二個操作數。
  • %(取餘):將第一個操作數除以第二個操作數並返回餘數。
  • ++(自增):將操作數加一。
  • -(自減):將操作數減一。

範例:

let a: number = 10;
let b: number = 5;

console.log(a + b); // 15
console.log(a - b); // 5
console.log(a * b); // 50
console.log(a / b); // 2
console.log(a % b); // 0

a++;
console.log(a); // 11

b--;
console.log(b); // 4

比較運算子

比較運算子用於比較兩個值並返回布林值。以下是常見的比較運算子:

  • ==(相等):如果兩個操作數相等,則返回 true
  • ===(嚴格相等):如果兩個操作數值和類型都相等,則返回 true
  • !=(不相等):如果兩個操作數不相等,則返回 true
  • !==(嚴格不相等):如果兩個操作數的值和類型都不相等,則返回 true
  • >(大於):如果左操作數大於右操作數,則返回 true
  • <(小於):如果左操作數小於右操作數,則返回 true
  • >=(大於等於):如果左操作數大於或等於右操作數,則返回 true
  • <=(小於等於):如果左操作數小於或等於右操作數,則返回 true

範例:

let x: number = 10;
let y: number = 5;

console.log(x == y); // false
console.log(x === 10); // true
console.log(x != y); // true
console.log(x !== y); // true
console.log(x > y); // true
console.log(x < y); // false
console.log(x >= 10); // true
console.log(x <= 5); // false

賦值運算子

賦值運算子用於為變數賦值。以下是常見的賦值運算子:

  • =(賦值):將右操作數的值賦給左操作數。
  • +=(加賦值):將右操作數與左操作數相加,並將結果賦給左操作數。
  • =(減賦值):將右操作數從左操作數中減去,並將結果賦給左操作數。
  • =(乘賦值):將左操作數與右操作數相乘,並將結果賦給左操作數。
  • /=(除賦值):將左操作數除以右操作數,並將結果賦給左操作數。
  • %=(取餘賦值):將左操作數取餘右操作數,並將結果賦給左操作數。

範例:

let a: number = 10;
let b: number = 5;

a += b; // 相當於 a = a + b;
console.log(a); // 15

a -= b; // 相當於 a = a - b;
console.log(a); // 10

a *= b; // 相當於 a = a * b;
console.log(a); // 50

a /= b; // 相當於 a = a / b;
console.log(a); // 10

a %= b; // 相當於 a = a % b;
console.log(a); // 0

位元運算子

位元運算子用於對二進位進行操作。以下是常見的位元運算子:

  • &(按位與):按位與操作。
  • |(按位或):按位或操作。
  • ^(按位異或):按位異或操作。
  • ~(按位非):按位取反操作。
  • <<(左移):將左操作數的二進位向左移動指定的位數。
  • >>(右移):將左操作數的二進位向右移動指定的位數。
  • >>>(無符號右移):將左操作數的二進位向右移動指定的位數,並在左側補零。

範例:

let a: number = 5;  // 二進位:0101
let b: number = 3; // 二進位:0011

console.log(a & b); // 1 -> 0001
console.log(a | b); // 7 -> 0111
console.log(a ^ b); // 6 -> 0110
console.log(~a); // -6 -> 1010
console.log(a << 1); // 10 -> 1010
console.log(a >> 1); // 2 -> 0010
console.log(a >>> 1); // 2 -> 0010

運算子的優先等級

運算子的優先等級決定了在表達式中運算子執行的順序。以下是常見運算子的優先等級(從高到低):

  1. 括號:()
  2. 成員訪問:obj.property
  3. 物件創建:new
  4. 函數調用:func()
  5. 遞增和遞減:++-
  6. 一元運算子:+,``,!~
  7. 乘法,除法,取餘:``,/%
  8. 加法和減法:+,``
  9. 位移運算:<<>>>>>
  10. 比較運算:<<=>>=
  11. 相等運算:==!====!==
  12. 按位與:&
  13. 按位異或:^
  14. 按位或:|
  15. 邏輯與:&&
  16. 邏輯或:||
  17. 三元運算子:? :
  18. 賦值運算子:=+===
  19. 解構賦值:=

範例:

let a: number = 10;
let b: number = 5;
let c: number = 2;
let result: number;

result = a + b * c; // 20,因為乘法的優先等級高於加法
console.log(result);

result = (a + b) * c; // 30,因為括號的優先等級最高
console.log(result);

result = a > b && b > c; // true,因為比較運算和邏輯運算
console.log(result);

理解運算子的優先等級對於編寫正確和高效的代碼非常重要。

分享至
成為作者繼續創作的動力吧!
© 2024 vocus All rights reserved.