逻辑运算符
a || b
和 a && b
的值得基本上不能是 true/false,
&& 运算符
&&
的意思是“和”
找 falsy 值
有一个假就是假
返回第一个 falsy 值
0 && 1 // 0
1 && 2 && 0 && 3 // 0
没有falsy值的话返回最后一个 truthy 值
1 && 2 && 4 && 3 // 3
fn && fn.call()
// 如果 fn 存在的话 就调用后面的函数,否则不调用。
&&
是前面的是 true 才会执行后面的。
|| 运算符
||
的意思是“或”
找 truthy 值
有一个真就是真
返回第一个 truthy 值
0 || undefined || null || 1 || 2 || null // 1
var a = b || {}
// 的意思是
if(b){
a = b;
}else{
a = {};
}
||
是前面的是 false 才会执行后面的。
! 运算符
!
运算符可以把 truthy 值变成 false
,把 falsy 值变成 true
。