📅  最后修改于: 2023-12-03 15:20:43.701000             🧑  作者: Mango
TypeScript是一种由微软开发的开源编程语言,它是JavaScript的一个超集,加入了静态类型检查等功能。在TypeScript中,我们可以使用JavaScript中的运算符,同时也支持一些新的运算符和类型保护的特性。
TypeScript支持JavaScript中的加、减、乘、除、取模等基本运算符,用法和JavaScript完全一致。例如:
let a: number = 10
let b: number = 2
console.log(a + b) // 12
console.log(a - b) // 8
console.log(a * b) // 20
console.log(a / b) // 5
console.log(a % b) // 0
TypeScript中的比较运算符与JavaScript也是一致的,包括小于、大于、等于、不等于、小于等于和大于等于六种。例如:
let a: number = 10
let b: number = 2
console.log(a > b) // true
console.log(a < b) // false
console.log(a == b) // false
console.log(a != b) // true
console.log(a >= b) // true
console.log(a <= b) // false
需要注意的是,TypeScript中有一个新增的比较运算符===
和!==
,它们是“严格相等”和“严格不相等”运算符。这两个运算符不会进行类型转换,在类型和值都相等的情况下才会返回true,否则返回false。
在TypeScript中,逻辑运算符跟JavaScript的使用方式是一致的,包括与、或、非三种。例如:
let a: boolean = true
let b: boolean = false
console.log(a && b) // false
console.log(a || b) // true
console.log(!a) // false
需要注意的是,TypeScript支持短路运算符&&
和||
。当使用&&
时,如果第一个表达式为false,则不会执行第二个表达式;当使用||
时,如果第一个表达式为true,则不会执行第二个表达式。
TypeScript支持JavaScript中的位运算符,包括按位与、按位或、按位异或、左移、右移和无符号右移六种。例如:
let a: number = 0b1010
let b: number = 0b1100
console.log(a & b) // 0b1000
console.log(a | b) // 0b1110
console.log(a ^ b) // 0b0110
console.log(a << 1) // 0b10100
console.log(a >> 1) // 0b0101
console.log(-a >>> 1) // 0b1111111111111111111111111111010
需要注意的是,TypeScript中使用的是带符号的二进制补码表示,使用负数进行位运算时会出现预料之外的结果。
除了上述的基本运算符之外,TypeScript中还支持一些其他的运算符和类型保护的特性,包括:
typeof
运算符:获取一个变量的类型名称。instanceof
运算符:判断一个对象是否是某个类的实例。?:
运算符:三元运算符,用来进行条件判断和赋值。??
运算符:空值合并运算符,用来检查一个变量是否为null或undefined,如果是,则返回一个默认值。let a: number = 10
console.log(typeof a) // "number"
class Person {}
let p: Person = new Person()
console.log(p instanceof Person) // true
let b: number = a > 0 ? a : 0
console.log(b) // 10
let c: number | undefined = undefined
let d: number = c ?? 0
console.log(d) // 0
TypeScript支持JavaScript中的所有运算符,包括算术运算符、比较运算符、逻辑运算符、位运算符和其他运算符。在使用过程中,需要注意一些细节,例如位运算符中的二进制补码表示和空值合并运算符等。掌握运算符的使用,有助于我们更加高效地编写TypeScript代码。