TypeScript - 逻辑运算符示例


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

运算符 描述 示例
&& (And) 与 仅当指定的所有表达式都返回 true 时,该运算符才返回 true (A > 10 && B > 10) 为 False
|| (OR) 或 如果至少有一个指定的表达式返回 true,则该运算符返回 true (A > 10 || B >10) 为 True
! (NOT) 非 该运算符返回表达式结果的倒数。 例如:!(>5) 返回 false !(A >10 ) 为 True

示例

var avg:number = 20; 
var percentage:number = 90; 

console.log("Value of avg: "+avg+" ,value of percentage: "+percentage);
 
var res:boolean = ((avg>50)&&(percentage>80)); 
console.log("(avg>50)&&(percentage>80): ",res);

var res:boolean = ((avg>50)||(percentage>80)); 
console.log("(avg>50)||(percentage>80): ",res);

var res:boolean=!((avg>50)&&(percentage>80)); 
console.log("!((avg>50)&&(percentage>80)): ",res);

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

var avg = 20; 
var percentage = 90;
console.log("Value of avg: " + avg + " ,value of percentage: " + percentage); 

var res = ((avg > 50) && (percentage > 80)); 
console.log("(avg > 50) && (percentage > 80): ", res); 

var res = ((avg > 50) || (percentage > 80)); 
console.log("(avg > 50)||(percentage > 80): ", res); 

var res = !((avg > 50) && (percentage > 80)); 
console.log("!((avg > 50)&&(percentage > 80)): ", res);

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

Value of avg: 20 ,value of percentage: 90 
(avg > 50)&&(percentage > 80):  false 
(avg > 50)||(percentage > 80):  true 
!((avg > 50)&&(percentage > 80)):  true

短路运算符 (&& 和 ||)

&& 和 || 运算符用于组合表达式。 && 仅当两个条件都返回 true 时,运算符才返回 true。 我们来考虑一个表达式 −

var a = 10 
var result = ( a<10 && a>5)

在上面的示例中,a < 10 和 a > 5 是由 && 运算符组合的两个表达式。 这里,第一个表达式返回 false。 但是,&& 运算符要求两个表达式都返回 true。 因此,运算符会跳过第二个表达式。

|| 如果表达式之一返回 true,则运算符返回 true。 例如 −

var a = 10 
var result = ( a>5 || a<10)

在上面的代码片段中,两个表达式 a > 5 和 a < 10 通过 || 运算符组合起来。这里,第一个表达式返回 true。 由于第一个表达式返回 true,因此 || 运算符会跳过后续表达式并返回 true。

由于 && 和 || 运算符的这种行为,它们被称为短路运算符

typescript_operators.html