目录
编辑
什么是操作员?
算术运算符
关系运算符
逻辑运算符
按位运算符
赋值运算符
杂项运算符
否定运算符 (-)
字符串运算符:连接运算符 (+)
条件运算符 (?)
类型运算符
类型运算符
实例化
什么是操作员?
运算符定义将对数据执行的某些函数。运算符所处理的数据称为操作数。考虑以下表达式 -
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 |
++(增量) | 将变量的值加一 | a++ 是 11 |
--(递减) | 将变量的值减一 | a-- 是 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
操作员 | 描述 | 例子 |
---|---|---|
&(按位与) | 它对其整数参数的每一位执行布尔 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
-
测试- 指条件表达式
-
expr1 - 如果条件为真则返回的值
-
expr2 - 如果条件为假则返回的值
让我们看一下下面的代码 -
var num:number = -2
var result = num > 0 ?"positive":"non-positive"
console.log(result)
第 2 行检查变量num中的值是否大于零。如果num设置为大于零的值,则返回字符串“正数”,否则返回字符串“非正数”。
编译时,它将生成以下 JavaScript 代码。
//Generated by typescript 1.8.10
var num = -2;
var result = num > 0 ? "positive" : "non-positive";
console.log(result);
上面的代码片段将产生以下输出 -
non-positive
类型运算符
类型运算符
它是一个一元运算符。该运算符返回操作数的数据类型。看一下下面的例子 -
编译时,它将生成以下 JavaScript 代码。
它将产生以下输出 -
number
实例化
该运算符可用于测试对象是否属于指定类型。instanceof运算符的使用在类一章中讨论。