JavaScript 比较和逻辑运算符
比较和逻辑运算符用于测试 true
或 false
。
比较运算符
比较运算符用于逻辑语句中,以确定变量或值之间的相等性或差异。
假设 x = 5
,下表解释了比较运算符
运算符 | 描述 | 比较 | 返回 | 试一试 |
---|---|---|---|---|
== | 等于 | x == 8 | false | 试一试 » |
x == 5 | true | 试一试 » | ||
x == "5" | true | 试一试 » | ||
=== | 值相等且类型相等 | x === 5 | true | 试一试 » |
x === "5" | false | 试一试 » | ||
!= | 不等于 | x != 8 | true | 试一试 » |
!== | 值不相等或类型不相等 | x !== 5 | false | 试一试 » |
x !== "5" | true | 试一试 » | ||
x !== 8 | true | 试一试 » | ||
> | 大于 | x > 8 | false | 试一试 » |
< | 小于 | x < 8 | true | 试一试 » |
>= | 大于或等于 | x >= 8 | false | 试一试 » |
<= | 小于或等于 | x <= 8 | true | 试一试 » |
如何使用
比较运算符可用于条件语句中,以比较值并根据结果执行操作
if (age < 18) text = "未成年,禁止饮酒";
您将在本教程的下一章中了解更多关于条件语句的用法。
逻辑运算符
逻辑运算符用于确定变量或值之间的逻辑关系。
假设 x = 6
和 y = 3
,下表解释了逻辑运算符
运算符 | 描述 | 示例 | 试一试 |
---|---|---|---|
&& | and | (x < 10 && y > 1) 为 true | 试一试 » |
|| | 或 | (x == 5 || y == 5) 为 false | 试一试 » |
! | not | !(x == y) 为 true | 试一试 » |
条件(三元)运算符
JavaScript 还包含一个条件运算符,它根据某个条件将值赋给一个变量。
语法
变量名 = (条件) ? 值1:值2
示例
let voteable = (age < 18) ? "未成年":"已成年";
自己动手试一试 »
如果变量 age 的值小于 18,则变量 voteable 的值将为 "未成年",否则 voteable 的值将为 "已成年"。
比较不同类型
比较不同类型的数据可能会产生意外的结果。
当比较字符串和数字时,JavaScript 会在比较时将字符串转换为数字。空字符串转换为 0。非数字字符串转换为 NaN
,它始终为 false
。
情况 | 值 | 尝试 |
---|---|---|
2 < 12 | true | 试一试 » |
2 < "12" | true | 试一试 » |
2 < "John" | false | 试一试 » |
2 > "John" | false | 试一试 » |
2 == "John" | false | 试一试 » |
"2" < "12" | false | 试一试 » |
"2" > "12" | true | 试一试 » |
"2" == "12" | false | 试一试 » |
比较两个字符串时,"2" 会大于 "12",因为(按字母顺序)1 小于 2。
为了获得正确的结果,变量在比较之前应转换为正确的类型
age = Number(age);
if (isNaN(age)) {
voteable = "输入不是数字";
} else {
voteable = (age < 18) ? "未成年" : "已成年";
}
自己动手试一试 »
空值合并运算符 (??)
??
运算符如果第一个参数不是空值(null
或 undefined
),则返回第一个参数。
否则返回第二个参数。
Nullish coalescing 运算符自 2020 年 3 月起在所有浏览器中得到支持
Chrome 80 | Edge 80 | Firefox 72 | Safari 13.1 | Opera 67 |
2020 年 2 月 | 2020 年 2 月 | 2020 年 1 月 | 2020 年 3 月 | 2020 年 3 月 |
可选链运算符 (?.)
?. 运算符在对象 undefined
或 null
时返回 undefined
(而不是抛出错误)。
示例
// 创建一个对象
const car = {type:"Fiat", model:"500", color:"white"};
// 请求汽车名称
document.getElementById("demo").innerHTML = car?.name;
自己动手试一试 »
Optional chaining 运算符自 2020 年 3 月起在所有浏览器中得到支持
Chrome 80 | Edge 80 | Firefox 72 | Safari 13.1 | Opera 67 |
2020 年 2 月 | 2020 年 2 月 | 2020 年 1 月 | 2020 年 3 月 | 2020 年 3 月 |