【问题标题】:Why does 0 && a Boolean evaluate to 0 instead of the Boolean?为什么 0 && a Boolean 评估为 0 而不是 Boolean?
【发布时间】:2018-08-16 05:17:06
【问题描述】:

为什么 0 && 和布尔值的计算结果为 0 而不是布尔值?

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

但是 false && 0 返回 false 而 true && 0 返回 true

假 && 0
> 错误

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

1 && 假
> 错误

【问题讨论】:

  • 因为 0 是错误的,所以永远不会评估 && .... ... 因为布尔逻辑 - 也许您正在考虑像 & 这样的位运算符而不是布尔 &&
  • true && 0 不返回true;它返回0

标签: javascript boolean expression boolean-expression


【解决方案1】:

the documentation from MDN:

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

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

由于0可以转换为false,而0expr1,所以返回0

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-06-10
    • 2021-11-01
    • 2019-05-24
    • 1970-01-01
    • 2016-08-25
    • 1970-01-01
    • 2011-07-10
    • 2012-03-15
    相关资源
    最近更新 更多