算數運算子用於執行基本的數學操作。以下是 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
運算子的優先等級決定了在表達式中運算子執行的順序。以下是常見運算子的優先等級(從高到低):
()
obj.property
new
func()
++
,-
+
,``,!
,~
/
,%
+
,``<<
,>>
,>>>
<
,<=
,>
,>=
==
,!=
,===
,!==
&
^
|
&&
||
? :
=
,+=
,=
,=
=
範例:
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);
理解運算子的優先等級對於編寫正確和高效的代碼非常重要。