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
,下表解释了逻辑运算符
运算符 | 描述 | 示例 | 尝试 |
---|---|---|---|
&& | 并且 | (x < 10 && y > 1) 为 true | 尝试 » |
|| | 或者 | (x == 5 || y == 5) 为 false | 尝试 » |
! | 非 | !(x == y) 为 true | 尝试 » |
条件(三元)运算符
JavaScript 还包含一个条件运算符,它根据某个条件将值分配给变量。
语法
variablename = (condition) ? value1:value2
示例
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
) 时,??
运算符返回第一个参数。
否则,它返回第二个参数。
空值合并运算符自 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;
亲自尝试 »
可选链运算符自 2020 年 3 月起在所有浏览器中均受支持
Chrome 80 | Edge 80 | Firefox 72 | Safari 13.1 | Opera 67 |
2020 年 2 月 | 2020 年 2 月 | 2020 年 1 月 | 2020 年 3 月 | 2020 年 3 月 |