什么是运算符?
运算符定义一些将对数据执行的功能。运算符所作用的数据称为操作数。考虑以下表达式-
7 + 5 = 12
此处,值7、5和12是操作数,而+和=是运算符。
TypeScript中的主要运算符可以分类为-
- 算术运算符
- 逻辑运算符
- 关系运算符
- 按位运算符
- 赋值运算符
- 三元/条件运算符
- 字符串运算符
- 类型运算符
算术运算符
假设变量a和b中的值分别为10和5。
| Operator | Description | Example |
|---|---|---|
| + (Addition) | 返回操作数之和 | a + b is 15 |
| – (Subtraction) | 输出的差 | a – b is 5 |
| * (Multiplication) | 输出的乘积 | a * b is 50 |
| / (Division) | 执行除法运算并返回商 | a / b is 2 |
| % (Modulus) | 执行除法运算并返回余数 | a % b is 0 |
| ++ (Increment) | 将变量的值加1 | a++ is 11 |
| — (Decrement) | 将变量的值减一 | a– is 9 |
关系运算符
关系运算符测试或定义两个实体之间的关系类型。关系运算符返回布尔值,即true / false。
假设A的值为10,B的值为20。
| 运算符 | 描述 | 例 |
|---|---|---|
| > | 比…大 | (A> B)为假 |
| < | 小于 | (A <B)为真 |
| > = | 大于或等于 | (A> = B)为假 |
| <= | 小于或等于 | (A <= B)为真 |
| == | 平等 | (A == B)为假 |
| != | 不相等 | (A!= B)为真 |
逻辑运算符
逻辑运算符用于组合两个或多个条件。逻辑运算符也返回布尔值。假设变量A的值为10,而B为20。
| 运算符 | 描述 | 例 |
|---|---|---|
| &&(和) | 仅当指定的所有表达式均返回true时,运算符才返回true | (A> 10 && B> 10)为假 |
| || (要么) | 如果指定的至少一个表达式返回true,则运算符返回true | (A> 10 || B> 10)为真 |
| !(不) | 运算符返回表达式结果的倒数。例如:!(> 5)返回false | !(A> 10)为真 |
按位运算符
假设变量A = 2和B = 3
| 运算符 | 描述 | 例 |
|---|---|---|
| &(按位与) | 它对其整数参数的每一位执行布尔“与”运算。 | (A&B)是2 |
| | (BitWise或) | 它对其整数参数的每一位执行布尔或运算。 | (A | B)是3 |
| ^(按位XOR) | 它对其整数参数的每一位执行布尔异或运算。异或表示一个操作数为true或两个操作数为true,但不是两个都为真。 | (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
- 测试-指条件表达式
- 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
类型运算符
类型运算符
它是一元运算符。该运算符返回操作数的数据类型。看下面的例子-
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运算符的将在Class类的章节讨论。