为什么0&&和布尔值求0而不是布尔值?
0&&假
> 0
0&&真正
> 0
但虚假&& 0返回false和true&& 0返回true
false&& 0
>假
我认为数值和假表达式总是会返回一个布尔值。
1&&假
>假
答案 0 :(得分:5)
请参阅the documentation from MDN:
&&&和||运算符实际上返回一个指定操作数的值,因此如果这些运算符与非布尔值一起使用,它们可能会返回非布尔值
和
expr1 && expr2
:如果可以转换为false,则返回expr1;否则,返回expr2。
由于0
可以转换为false,0
为expr1
,因此会返回0
。