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 = 2 |
++(递增) | 将变量的值增加1 | a++ = 10 |
--(递减) | 将变量的值减少1 | a-- = 9 |
关系运算符
关系运算符测试或定义两个实体之间的关系类型。关系运算符返回一个Boolean值,即true/ false。
假设A的值是10,B的值为20。
运算符 | 描述 | 示例 |
---|---|---|
> | 大于 | (A > B)为False |
< | 小于 | (A < B)为True |
> = | 大于或等于 | (A > = B)为False |
<= | 小于或等于 | (A <= B)为True |
== | 等于 | (A == B)为False |
!= | 不等于 | (A!= B)为True |
逻辑运算符
逻辑运算符用于组合两个或多个条件。逻辑运算符也返回一个Boolean值。假设定变量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
运算符 | 描述 | 示例 |
---|---|---|
&(按位与) | 它对其整数参数的每一位执行Boolean“与”运算。 | (A&B)为 2 |
| (按位或) | 它对其整数参数的每一位执行Boolean“或”运算。 | (A | B)为 3 |
^(按位异或) | 它对其整数参数的每一位执行Boolean“异或”运算。异或意味着操作数1为true或操作数2为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 |
/ =(除法赋值) | 它将左操作数除以右操作数,并将结果赋给左操作数。 |
注意:相同的逻辑也适用于位运算符,所以他们会变为<<=, >>=, >>=, &=, |= and ^=。
其他运算符
否定运算符( - )
更改值的符号。让我们举一个例子:
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 - 如果条件为true,则返回值
expr2 - 如果条件为false,则返回值
让我们来看看下面的代码:
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运算符的使用。
更多建议: