为什么0&&布尔值是否为0而不是布尔值?

时间:2018-03-07 23:51:12

标签: javascript boolean expression boolean-expression

为什么0&&和布尔值求0而不是布尔值?

  

0&&假
  > 0
  0&&真正
  > 0

但虚假&& 0返回false和true&& 0返回true

  

false&& 0
  >假

我认为数值和假表达式总是会返回一个布尔值。

  

1&&假
  >假

1 个答案:

答案 0 :(得分:5)

请参阅the documentation from MDN

  &&&和||运算符实际上返回一个指定操作数的值,因此如果这些运算符与非布尔值一起使用,它们可能会返回非布尔值

  

expr1 && expr2:如果可以转换为false,则返回expr1;否则,返回expr2。

由于0可以转换为false,0expr1,因此会返回0