逻辑运算符包括&&(逻辑与)、||(逻辑或)、!(逻辑非)。
下面的运算规则中,true和false都是相应位置的数据转换为布尔值后的结果。
1、&& 的运算规则如下:
true && true = true 返回最后一个值
true && false = false 返回false对应的值
false && true = false 返回false对应的值
false && false = false 返回第一次遇见false对应的值
var a = 5;
console.log(a > 0 && a < 10); //true
var a = 1 && 2;
console.log(a); //2
2、|| 的运算规则如下:
true || true = true 第一个遇见true对应的值
true || false = true 返回true对应的值
false || true = true 返回true对应的值
false || false = false 返回最后一个false对应的值
obj = obj || { a: 1 };
这句代码的含义是,如果obj转为布尔值是false,就将 { a: 1 } 赋值给obj。
bn.onclick = function (e) {
e = e || window.event;
};
上面这段代码里的语句是常用的事件对象兼容写法。
3、! 的运算规则如下:
遇到 ! 优先将后面的内容先转换布尔值再取反
上面的 || 的第一个案例相当于下面的写法:
if (!obj) {
obj = { a: 1 };
}
关于 ! 的一个注意用法可以看 这里 对 ![] == [] 的结果是 true 的解释。