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
+  +  (增量)将变量的值增加一个a +  + 是11
- (减少)减量变量的值为1a--是9

关系运算符

关系运算符测试或定义两个实体之间的关系类型.关系运算符返回一个布尔值,即true/false.

假设A的值为10,B为20.

运算符Description示例
>大于(A> B)为假
<小于(A< B)为真
> =大于或等于(A> = B)为假
< =小于或等于(A< = B)为真
==Equality(A == B)为假
!=不等于(A!= B)为真

逻辑运算符

逻辑运算符用于组合两个或多个条件.逻辑运算符也返回一个布尔值.假设变量A的值为10,B为20.

运算符描述示例
&& (和)只有当指定的所有表达式都返回true时,运算符才返回true(A> 10&& B> 10)为假
|| (OR)如果指定的表达式中至少有一个返回true,则运算符返回true(A> 10 | | B> 10)为真
! (NOT)运算符返回表达式结果的反函数.例如:!(> 5)返回false!(A> 10)为True

按位运算符

假设变量A = 2且B = 3

运算符描述示例
&安培; (按位AND)它对其整数参数的每一位执行布尔AND运算.(A& B)是2
| (BitWise OR)它对其整数参数的每一位执行布尔OR运算.(A | B)是3
^(按位异或)它对其整数参数的每个位执行布尔异或运算.异或表示操作数1为真或操作数2为真,但不是两者.(A ^ B)为1
〜(按位不是)它是一元运算符,通过反转所有操作数中的位.(~B)是-4
<< (左移)它将第一个操作数中的所有位向左移动第二个操作数中指定的位数.新位用零填充.将一个值左移一个等值相当于将其乘以2,移位两个位置相当于乘以4,依此类推.(A<< ; 1)是4
>> (右移)二进制右移运算符.左操作数的值向右移动右操作数指定的位数.(A>> 1)是1
>>> (右移零)此运算符就像>>运算符,除了左边移入的位始终为零.(A>>> 1)是1

作业运算符

运算符描述示例
=(简单分配)从右侧操作数到左侧操作数分配值C = A +  B将指定A&plus的值; B到C
+  =(添加和分配)它将右操作数添加到左操作数并将结果赋给左操作数.C +  = A等于C = C +  A
-  =(减去和分配)它从左操作数中减去右操作数,并将结果赋给左操作数.C  -  = A相当于C = C  -  A
&ast; =(乘法和分配)它乘以右边带左操作数的操作数,并将结果赋给左操作数.C&ast; = A相当于C = C&ast; 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?"正面":"非正面"
 console.log(结果)

第2行检查变量中的值是否为 num 大于零.如果 num 设置为大于零的值,则返回字符串"positive",否则返回字符串"non-positive".

编译时,它将生成以下JavaScript代码.

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

上面的代码片段将产生以下输出 :

non-positive

类型运算符

typeof运算符

这是一个一元运算符.此运算符返回操作数的数据类型.看看以下示例 :

 
 var num = 12 
 console.log(typeof num);//输出:数字

在编译时,它将生成以下JavaScript代码.

 
//由typescript生成1.8.10 
 var num = 12; 
 console.log(typeof num);//输出:数字

它将产生以下输出 :

 
 number

instanceof

此运算符可用于测试对象是否属于指定类型.在一章中讨论了使用 instanceof 运算符.