- 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 运算符的使用在类一章中进行了讨论。