JavaScript 中的逻辑运算符可用来确定变量或者是值之间的逻辑关系。通常用于布尔型值,会返回一个布尔值 true
或 false
。而 &&
、||
运算符能够使用非布尔值的操作数,此时会返回一个非布尔型值。
布尔值
在 JavaScript 中提供了一种布尔数据类型,只接受值 true
或 false
。我们可以通过 Boolean()
函数来确定表达式(或变量)的值为 true
还是 false
。
示例:
将下面代码在浏览器中执行,将弹出一个显示 true
的弹出层:
alert(Boolean(7 > 2));
这表示 7 > 2
的结果为真值,当然 7 本来就比 2 大,如果是反过来 7 > 2
,那么浏览器会显示 false。
逻辑与操作符
逻辑与 &&
操作符,如果第一个操作数为 true
,计算结果就是第二个操作数。如果第一个操作数为 false
,结果就是 false
(特殊数值除外)。
示例:
console.log(true && true); // true 操作数为 true 则结果为第二个操作数
console.log(true && false); // false
console.log(true && 10); // 10
console.log(true && (4 > 7)); // false
console.log(false && 10); // false 操作数为 false 则结果为 false
console.log(false && ""); // false
console.log(" " && 0); // 0
console.log(2 && 7); // 7
会被转换为 false 的表达式:
null
NaN
0
- 空字符串(
""
、''
、“) undefined
逻辑或操作符
逻辑或 ||
操作符,如果第一个操作数能够转为 true
(不是 false
),结果就是第一个操作数,否则结果是第二个操作数。
示例:
console.log(true || true); // true 第一个操作数为 true 则结果为第一个操作数
console.log(true || false); // true
console.log(true || 10); // true
console.log(true || (4 > 7)); // true
console.log(false || 10); // 10 第一个操作数不是 true,则结果为第二个操作数
console.log(false || ""); //
console.log(false || 0); // 0
console.log(0 || 7); // 7
逻辑非操作符
逻辑非 !
操作符,首先把数据转化为布尔值,然后取反,结果为 true
或 false
。
示例:
例如 true
本来就是布尔值,取反会得到 false
。false
取反会得到 true
:
console.log(!true); // false
console.log(!false); // true
console.log(!0); // true
console.log(!""); // true
console.log(![1, 2, 3]); // false
数字 0
可以化为布尔值 false
,取反结果为 true
。""
空字符串也是同理,先化为 false
再取反得到 true
。数组 [1, 2, 3]
化为布尔值 true
,取反得到 false
。
动手小练习
- 请说出下列代码的输出结果:
console.log(true && 2);
console.log(true || false);
console.log(true && [1, 2, 3]);
console.log(!true);
console.log(1 || false);
console.log(!(3 > 5));
链接:https://www.9xkd.com/