TypeScript - 運算子



什麼是運算子?

運算子定義了將在資料上執行的某些函式。運算子作用於的資料稱為運算元。請考慮以下表達式:

7 + 5 = 12

這裡,值 7、5 和 12 是運算元,而 + 和 = 是運算子

TypeScript 中的主要運算子可以分類為:

  • 算術運算子
  • 邏輯運算子
  • 關係運算符
  • 位運算子
  • 賦值運算子
  • 三元/條件運算子
  • 字串運算子
  • 型別運算子

算術運算子

假設變數 a 和 b 中的值分別為 10 和 5。

顯示示例

運算子 描述 示例
+(加法) 返回運算元的和 a + b 為 15
-(減法) 返回值的差 a - b 為 5
*(乘法) 返回值的積 a * b 為 50
/(除法) 執行除法運算並返回商 a / b 為 2
%(模數) 執行除法運算並返回餘數 a % b 為 0
++(增量) 將變數的值增加 1 a++ 為 11
--(減量) 將變數的值減少 1 a-- 為 9

關係運算符

關係運算符測試或定義兩個實體之間關係的型別。關係運算符返回布林值,即 true/false。

假設 A 的值為 10,B 的值為 20。

顯示示例

運算子 描述 示例
> 大於 (A > B) 為 False
< 小於 (A < B) 為 True
>= 大於或等於 (A >= B) 為 False
<= 小於或等於 (A <= B) 為 True
== 相等 (A == B) 為 false
!= 不相等 (A != B) 為 True

邏輯運算子

邏輯運算子用於組合兩個或多個條件。邏輯運算子也返回布林值。假設變數 A 的值為 10,B 的值為 20。

顯示示例

運算子 描述 示例
&&(與) 只有當指定的所有表示式都返回 true 時,該運算子才返回 true (A > 10 && B > 10) 為 False
||(或) 如果指定表示式中至少有一個返回 true,則該運算子返回 true (A > 10 || B >10) 為 True
!(非) 該運算子返回表示式的結果的反值。例如:!(>5) 返回 false !(A >10 ) 為 True

位運算子

假設變數 A = 2,B = 3

顯示示例

運算子 描述 示例
&(按位與) 它對每個整數引數的每個位執行布林 AND 運算。 (A & B) 為 2
|(按位或) 它對每個整數引數的每個位執行布林 OR 運算。 (A | B) 為 3
^(按位異或) 它對每個整數引數的每個位執行布林異或運算。異或意味著運算元一為真或運算元二為真,但不能同時為真。 (A ^ B) 為 1
~(按位非) 它是一個一元運算子,透過反轉運算元中的所有位來操作。 (~B) 為 -4
<<(左移) 它將第一個運算元中的所有位向左移動第二個運算元中指定的位數。新的位用零填充。將值左移一位相當於將其乘以 2,左移兩位相當於將其乘以 4,依此類推。 (A << 1) 為 4
>>(右移) 二進位制右移運算子。左運算元的值向右移動由右運算元指定的位數。 (A >> 1) 為 1
>>>(帶零的右移) 此運算子與 >> 運算子類似,只是左側移入的位始終為零。 (A >>> 1) 為 1

賦值運算子

顯示示例

運算子 描述 示例
=(簡單賦值) 將值從右側運算元賦值給左側運算元 C = A + B 將 A + B 的值賦給 C
+=(加法賦值) 它將右側運算元加到左側運算元,並將結果賦給左側運算元。 C += A 等價於 C = C + A
-=(減法賦值) 它從左側運算元中減去右側運算元,並將結果賦給左側運算元。 C -= A 等價於 C = C - A
*=(乘法賦值) 它將右側運算元乘以左側運算元,並將結果賦給左側運算元。 C *= A 等價於 C = C * A
/=(除法賦值) 它將左側運算元除以右側運算元,並將結果賦給左側運算元。

注意 - 位運算子也適用相同的邏輯,因此它們將變為 <<=、>>=、>>=、&=、|= 和 ^=。

其他運算子

否定運算子 (-)

更改值的符號。讓我們舉個例子。

var x:number = 4 
var y = -x; 
console.log("value of x: ",x);   //outputs 4 
console.log("value of y: ",y);   //outputs -4

編譯後,它將生成以下 JavaScript 程式碼。

//Generated by typescript 1.8.10
var x = 4;
var y = -x;
console.log("value of x: ", x);   //outputs 4
console.log("value of y: ", y);   //outputs -4

它將產生以下輸出:

value of x:  4 
value of y:  -4

字串運算子:連線運算子 (+)

當 + 運算子應用於字串時,它會將第二個字串附加到第一個字串。以下示例幫助我們理解這個概念。

var msg:string = "hello"+"world" 
console.log(msg)

編譯後,它將生成以下 JavaScript 程式碼。

//Generated by typescript 1.8.10
var msg = "hello" + "world";
console.log(msg);

它將產生以下輸出:

helloworld

連線操作不會在字串之間新增空格。可以在單個語句中連線多個字串。

條件運算子 (?)

此運算子用於表示條件表示式。條件運算子有時也稱為三元運算子。語法如下所示:

Test ? expr1 : expr2
  • Test - 指條件表示式

  • expr1 - 如果條件為真則返回的值

  • expr2 - 如果條件為假則返回的值

讓我們看一下以下程式碼:

var num:number = -2 
var result = num > 0 ?"positive":"non-positive" 
console.log(result)

第 2 行檢查變數num中的值是否大於零。如果num設定為大於零的值,則返回字串“positive”,否則返回字串“non-positive”。

編譯後,它將生成以下 JavaScript 程式碼。

//Generated by typescript 1.8.10
var num = -2;
var result = num > 0 ? "positive" : "non-positive";
console.log(result);

以上程式碼段將產生以下輸出:

non-positive

型別運算子

typeof 運算子

它是一個一元運算子。此運算子返回運算元的資料型別。請看以下示例:

var num = 12 
console.log(typeof num);   //output: number

編譯後,它將生成以下 JavaScript 程式碼。

//Generated by typescript 1.8.10
var num = 12;
console.log(typeof num);   //output: number

它將產生以下輸出:

number

instanceof

此運算子可用於測試物件是否為指定型別。instanceof 運算子的使用在一章中進行了討論。

廣告