
- TypeScript 基礎
- TypeScript - 首頁
- TypeScript - 路線圖
- TypeScript - 概述
- TypeScript - 環境設定
- TypeScript - 基本語法
- TypeScript 與 JavaScript
- TypeScript - 特性
- TypeScript - 變數
- TypeScript - let & const
- TypeScript - 運算子
- TypeScript 基本型別
- TypeScript - 型別
- TypeScript - 型別註解
- TypeScript - 型別推斷
- TypeScript - 數字
- TypeScript - 字串
- TypeScript - 布林值
- TypeScript - 陣列
- TypeScript - 元組
- TypeScript - 列舉
- TypeScript - Any
- TypeScript - Never
- TypeScript - 聯合型別
- TypeScript - 字面量型別
- TypeScript - 符號
- TypeScript - null 與 undefined
- TypeScript - 類型別名
- TypeScript 控制流
- TypeScript - 決策
- TypeScript - If 語句
- TypeScript - If Else 語句
- TypeScript - 巢狀 If 語句
- TypeScript - Switch 語句
- TypeScript - 迴圈
- TypeScript - For 迴圈
- TypeScript - While 迴圈
- TypeScript - Do While 迴圈
- TypeScript 函式
- TypeScript - 函式
- TypeScript - 函式型別
- TypeScript - 可選引數
- TypeScript - 預設引數
- TypeScript - 匿名函式
- TypeScript - 函式構造器
- TypeScript - Rest 引數
- TypeScript - 引數解構
- TypeScript - 箭頭函式
- TypeScript 介面
- TypeScript - 介面
- TypeScript - 擴充套件介面
- TypeScript 類和物件
- TypeScript - 類
- TypeScript - 物件
- TypeScript - 訪問修飾符
- TypeScript - 只讀屬性
- TypeScript - 繼承
- TypeScript - 靜態方法和屬性
- TypeScript - 抽象類
- TypeScript - 訪問器
- TypeScript - 鴨子型別
- TypeScript 高階型別
- TypeScript - 交叉型別
- TypeScript - 型別守衛
- TypeScript - 型別斷言
- TypeScript 型別操作
- TypeScript - 從型別建立型別
- TypeScript - Keyof 型別運算子
- TypeScript - Typeof 型別運算子
- TypeScript - 索引訪問型別
- TypeScript - 條件型別
- TypeScript - 對映型別
- TypeScript - 模板字面量型別
- TypeScript 泛型
- TypeScript - 泛型
- TypeScript - 泛型約束
- TypeScript - 泛型介面
- TypeScript - 泛型類
- TypeScript 其他
- TypeScript - 三斜線指令
- TypeScript - 名稱空間
- TypeScript - 模組
- TypeScript - 環境宣告
- TypeScript - 裝飾器
- TypeScript - 型別相容性
- TypeScript - Date 物件
- TypeScript - 迭代器和生成器
- TypeScript - Mixins
- TypeScript - 實用程式型別
- TypeScript - 裝箱和拆箱
- TypeScript - tsconfig.json
- 從 JavaScript 到 TypeScript
- TypeScript 有用資源
- TypeScript - 快速指南
- TypeScript - 有用資源
- TypeScript - 討論
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 運算子的使用在類一章中進行了討論。