逻辑运算符通常用于
布尔
型(逻辑)值。这种情况下,它们返回一个布尔值。然而,&&
和||
运算符会返回一个指定操作数的值,因此,这些运算符也用于非布尔值。这时,它们也就会返回一个非布尔型值。
MDN上关于逻辑运算符是这样解释的,如果你没有一些基础概念很难明白它在说什么。
操作数是运算符作用于的实体,是表达式中的一个组成部分,它规定了指令中进行数字运算的量 。
表达式是操作数与操作符的组合。
看看百度百科上对操作数和操作符的解释,之后你对操作数、运算符、表达式应该就有了一定的理解。
我们可以简单理解为,你的操作数是什么值,返回的就是什么值。
一个逻辑表达式是从左到右做运算的,例如&&
运算符
1&&2&&3 //表达式从左到右依次检查,返回值是3
1&&0&&3 //检查到falsy值0,运算结束,返回值是0
另外||
运算符
1||2||3 //检测到trusy值1,后面就不计算了,返回值是1
0||2||3 //检测到trusy值2,后面就不计算了,返回值是2
0||null||NaN //从左到右依次检查,没有trusy值,返回最后的NaN
下面这行代码就不难理解了,如果object
为trusy值返回object
,如果为falsy值返回最后的{}
空对象
var obj = object || {}
网友评论