逻辑运算符可以把两个或多个表达式连接成一个表达式,或使表达式的逻辑反转。JavaScript逻辑运算符如表2-10所示。
表2-10 逻辑运算符
“&&”运算符执行与运算,遵循以下两条规则:
(1)如果“&&”运算符左边的表达式为true或代表真的值,将继续进行右边表达式的计算,最终返回右边表达式的值。
(2)如果“&&”运算符左边的表达式为false或代表假的值,将不会进行右边表达式的计算,最终返回左边表达式的值。该规则也称为“短路”规则。
【例2-3】“&&”运算符
例2-3在Chrome浏览器控制台中的输出结果如图2-6所示。由输出结果可知,逻辑与表达式的值既可以是布尔值,也可以不是布尔值。如果第一个表达式的值为真,则返回第二个表达式的值;如果第一个表达式的值为假,则返回第一个表达式的值。
图2-6 例2-3的输出结果
提示: JavaScript程序中表达“1<x<9”的逻辑关系时,应写作“1<x && x<9”。“1<x<9”相当于“var temp=1<x; temp<9;”,其中“1<x”的返回值是true或false,“temp<9”中的比较运算符“<”会将布尔型temp转换为数字和9比较,true转换为1,false转换为0,因此无论x是多少,“temp < 9”恒成立,因此“1<x<9”返回结果始终都是true。
“||”运算符执行或运算,遵循以下两条规则:
(1)如果“||”运算符左边的表达式为false或代表假的值,将继续进行右边表达式的计算,最终返回右边表达式的值。
(2)如果“||”运算符左边的表达式为true或代表真的值,将不会进行右边表达式的计算,最终返回左边表达式的值。
【例2-4】“||”运算符
例2-4在Chrome浏览器控制台中的输出结果如图2-7所示。由输出结果可知,逻辑或表达式的值既可以是布尔值,也可以不是布尔值。如果第一个表达式的值为真,则返回第一个表达式的值;如果第一个表达式的值为假,则返回第二个表达式的值。
图2-7 例2-4的输出结果
“!”运算符执行取反运算,遵循以下两条规则:
(1)“!”运算符的操作数只有一个。
(2)“!”运算符在执行运算时,首先将操作数转换为布尔值,然后对布尔值取反,返回true或false。示例如下: