介绍
计算机科学领域有许多数理逻辑基础。如果您熟悉逻辑,就会知道它涉及真值表、布尔代数和比较以确定相等或不同。
JavaScript 编程语言使用运算符来评估有助于在编程中控制流的语句。
在本教程中,我们将介绍逻辑运算符。这些通常与条件语句中使用,以及if
,else
和else if
关键字,以及三元运算符。如果您有兴趣首先了解有关条件语句的更多信息,请参阅如何在 JavaScript 中编写条件语句。
比较运算符
在 JavaScript 中,您可以使用许多比较运算符来评估给定的值是不同还是相等,以及某个值是否大于或小于另一个值。通常,这些运算符与变量中的存储值一起使用。
比较运算符都返回一个布尔(逻辑)值的true
或false
。
下表总结了 JavaScript 中可用的比较运算符。
操作员 | 这是什么意思 |
---|---|
== |
等于 |
!= |
不等于 |
=== |
严格等于没有类型转换 |
! == |
严格不等于没有类型转换 |
> |
比…更棒 |
>= |
大于或等于 |
< |
少于 |
<= |
小于或等于 |
让我们详细介绍每个运算符。
平等
相等运算符测量运算符两侧的值是否相等。
让我们考虑以下几点:
let x = 3;
x == 3;
因为3
等价于3
,接收到的输出将是 的布尔值true
。
Outputtrue
如果我们改为测试是否x
等于另一个整数,我们将收到表明该语句被验证为假的输出。
let x = 3;
x == 5;
Outputfalse
使用此等价表达式,您还可以测试其他数据类型,例如字符串和布尔值。
我们将在下面使用一个字符串示例。
let shark = 'sammy';
shark == 'sammy';
shark == 'taylor';
Outputtrue
false
在第一种情况下,表达式返回true
是因为字符串是等价的。在第二个实例 of 中shark == 'taylor'
,表达式返回,false
因为字符串不相等。
值得注意的是,==
运算符不是严格等价的,因此您可以混合计算为等价的数字和字符串。考虑以下示例。
let x = 3;
x == '3';
即使第一行使用数字数据类型,第二行x
针对字符串数据类型进行测试,但两个值都等于 3,您将收到的输出表明表达式为真。
Outputtrue
因为这个运算符对数据类型不严格,所以它可以支持用户输入字符串而不是数字,例如。无需将数据类型转换为测试等效性。
在很多情况下,您可以使用像==
运算符这样的比较运算符。例如,您可能希望在对测试评分时测试等效性。这样你就可以验证给定的答案是否正确。
let answer = 10;
let response = prompt("What is 5 + 5?");
if (answer == response) {
console.log("You're correct!");
}
在这里,如果学生10
在提示时回答问题而输入,他们将收到他们正确的反馈。
JavaScript 中有许多比较运算符的潜在应用,它们将帮助您控制程序的流程。
现在您已经有了一些示例的基础==
,我们将更简短地继续前进。
不等式
的!=
操作者测试不等式,以确定操作者的任一侧上的值是否不相等。
让我们考虑一个例子。
let y = 8;
y != 9;
对于这个例子,8
并不等于9
,所以表达式将被评价为true
:
Outputtrue
对于要考虑的不等式陈述,false
任一侧的两个值实际上需要相等,如下所示。
let y = 8;
y != 8
Outputfalse
在该第二示例中,在操作者的任一侧上的两个值是相等的,所以表达式是不正确的。
身份
所述===
操作者确定两个值是否两者相等的值和等于类型。这也称为严格相等运算符。这意味着您不能混合数字和字符串数据类型。
下面是一个例子:
let z = 4;
z === 4;
z === '4';
我们将收到以下输出。
Outputtrue
false
实例表明,z
是严格等于4
(因为它被分配的数字值4
),但是,这是不严格等于字符串'4'
。
由于此运算符是严格的,因此您需要记住,例如,在使用身份运算符时,您可能需要将用户输入的数据从一种数据类型转换为另一种数据类型。这可以帮助您在整个程序中保持数据类型一致。
非身份
像===
,运算符!==
计算严格的不等式,它考虑运算符两侧操作数的值和类型。
我们将回顾以下示例。
let a = 18;
a !== 18;
a !== '18';
a !== 29;
上述输出将如下所示。
Outputfalse
true
true
在这个例子中,由于a
do严格等于18
,第一个表达式的计算结果false
为我们测试不等式。在接下来的两个示例中,a
被确定为不等于字符串'18'
和数字29
,因此这两个表达式的计算结果为true
(因为它们不相等)。
比…更棒
JavaScript 中的大于号符号可能对数学很熟悉:>
. 这将评估一个值(在表达式的左侧)是否大于另一个值(在表达式的右侧)。
与==
上面的运算符一样,大于运算符并不严格,因此允许您混合使用字符串和数字。
让我们考虑以下示例。
let f = 72;
f > 80;
f > '30';
我们将收到以下输出:
Outputfalse
true
在第一种情况,72
是小于 80
,所以第一个表达式的计算结果false
。在第二种情况下,72
实际上大于'30'
,并且运算符不关心数字是字符串,因此表达式的计算结果为true
。
大于或等于
同样,大于或等于的运算符将评估一个操作数是否满足另一个操作数的阈值。该运算符的类型是>=
大于 ( >
) 和等号 ( =
)之间的一种复合。
我们的例子:
let g = 102;
g >= 90;
g >= 103;
Outputtrue
false
因为102
是一个大于 的数90
,它被认为大于或等于90
。因为102
小于103
,false
就是说102 >= 103
。如果90
或103
是字符串数据类型,则表达式的计算结果也相同。
少于
小于运算符显示为大于运算符的镜像版本:<
。
考虑以下示例作为演示。
let w = 1066;
w < 476;
w < 1945;
Outputfalse
true
在这里,1066
是大于 476
,所以表达式求false
。然而,1066
就是不到1945
,所以第二个语句评估为true
。同样,476
或1945
值也可以是字符串。
小于或等于
大于或等于的反面,小于或等于运算符——<=
将评估运算符左侧的值是否小于或等于右侧的值。
这里有一些例子。
let p = 2001;
p <= 1968;
p <= 2001;
p <= 2020;
Outputfalse
true
true
第一个表达式的计算结果为false
因为2001
不小于或等于1968
。在第二个表达式中,因为变量 和2001
是相等的值,所以输出是true
。在第三个表达式,输出也true
因为2001
是小于2020
。同样,这些值也可以表示为字符串,如在 中'2001'
,并且将以相同的方式进行评估。
注意:一定不要将小于或等于运算符 ( <=
) 与=>
JavaScript 中的箭头函数 ( )混淆。在我们的教程“理解 JavaScript 中的箭头函数”中了解有关箭头函数的更多信息。
要了解这些比较运营商可以在一个程序一起工作,请参阅我们的grades.js
例子中我们在JavaScript中如何写条件语句教程。
逻辑运算符
在 JavaScript 中,有三个逻辑运算符,它们连接两个或多个编程语句以返回true
(也称为“真”)或false
(“假”)值。这些最常与布尔(逻辑)类型一起使用,但可以应用于任何数据类型的值。
下表总结了这些逻辑运算符。
操作员 | 句法 | 描述 |
---|---|---|
和 | && |
true 如果两个操作数都是,则返回true |
或者 | || | true 如果任一操作数是,则返回true |
不是 | ! |
true 如果操作数是,则返回false |
让我们更详细地查看这些运算符中的每一个。
和
AND 运算符由两个 & 符号表示——如果左右操作数的计算结果为真&&
,它将返回true
。
例如,使用 AND 我们可以检查某样东西是否既高质量又低价。
// High quality and low price are true
const highQuality = true;
const lowPrice = true;
(highQuality && lowPrice);
Outputtrue
由于两个变量的计算结果都是true
,括号内的 AND 运算返回true
。如果任一变量初始化为false
,则&&
表达式的计算结果为false
。
或者
OR 运算符由两个管道表示——如果其中一个操作数为真||
,它将返回true
。
在这个例子中,我们将检查某些东西是否是 highQuality
或lowPrice
。
// Only low price is true
const highQuality = false;
const lowPrice = true;
(highQuality || lowPrice);
Outputtrue
由于两个条件之一(highQuality
或lowPrice
)是true
,整个操作返回true
。false
如果两个条件都为 ,这只会评估为false
。
不是
NOT 运算符由感叹号表示——如果操作数设置为,!
它将返回,反之亦然。true
false
const highQuality = true;
!(highQuality);
Outputfalse
在上面的语句中,highQuality
的值为true
。使用 NOT 运算符,我们正在检查hiqhQuality
计算结果是否为false
。如果是false
,输出将返回true
,但既然是 true
,输出将返回false
。
NOT 运算符起初有点难以理解。要记住的重要部分是 NOT 检查某些东西的评估结果是否为假。
结论
逻辑运算符是 JavaScript 编程中流控制的构建块。有效地使用这些运算符将帮助您开发程序来评估陈述并根据陈述的真假进入下一阶段。
要继续了解有关 JavaScript 的更多信息,请查看我们的“如何在 JavaScript 中编码”系列和我们的JavaScript标签。