逻辑与 逻辑或 操作可以应用于任何类型的操作数,而不仅仅是布尔值。
alert(true&&false); // false
alert(true&&true); // true
alert(false&&false); // false
alert(false&&true); // false
alert(true||false); // true
alert(false||true); // true
alert(true||true); // true
alert(false||false); // false
在有一个操作数不是布尔值的情况下,逻辑与操作不一定返回布尔值;此时,它遵循下列规则:
a && b : 将a, b转换为Boolean类型, 再执行逻辑与
a || b : 将a, b转换为Boolean类型, 再执行逻辑或
转换规则:
对象为true
非零数字为true
非空字符串为true
其他为false
总结:
1、只要“&&”前面是false,无论“&&”后面是true还是false,结果都将返“&&”前面的值;
2、只要“&&”前面是true,无论“&&”后面是true还是false,结果都将返“&&”后面的值;
3、只要“||”前面为false,无论“||”后面是true还是false,结果都返回“||”后面的值。
4、只要“||”前面为true,无论“||”后面是true还是false,结果都返回“||”前面的值。
注意:“&&”的优先级高于“||”的优先级
&& ||遵循“短路”原理: