2017-05-26 304 views
-3

所以,我已经做了一些搜索,看起来它还没有被问到,但我可能是错的。Javascript:false && false是false?

按道理

false && false === true 
false && true === false 
true && false === false 
true && true === true 

无论其

它似乎并不像这是javascript的情况。我跑了上面的console,这是我从火狐& &铬得到:

false && false //console output: false 
false && true //console output: false 
true && false //console output: false 
true && true //console output: true 

我已经找到了solution但严重?为什么?我会认为这是标准行为。

它甚至说在Java documentationlogical AND | &&

+1

'false && false === true'咦?为什么你这么想? – SLaks

+0

为什么你会看Java文档,为什么JavaScript(**完全不同的语言**)做了什么? –

+1

你正在考虑XOR –

回答

3

错误和错误在逻辑上是错误的。

+0

这是正确的。只有真正&&真实==真实。 –

0

每次使用AND设置一个错误表达式时,其余方程无关紧要,因为每个表达式必须为TRUE才能使结果为真。

假& & true表示:

都是方程有效?是“假”而“真”是真的? 如果其中任何一个失败,那么它的虚假

另一个例子:

真正||在这种情况下(真& &假)

,你这样写的:

是“真”真的还是......“真”与“假”真的吗?

第一个被评估为真,所以不需要验证第二个等式(因为其中一个已经是真的),实际上并不需要。进行优化。

0

&&运算符具有从左到右的关联性。

意思是如果第一个值是truthy(强制为真)它将评估第二个,如果第二个是真的第三个..直到最后一个将是表达式的结果。

由于运算符的第一个元素是伪造的(强制为false)表达式立即返回false。

Operator precedence MDN

0

使用&&运算符的表达式的结果的基础上确定这些规则:

如果表达式的左侧是“falsey”,表达式将返回左侧。

如果表达式的左边是“truthy”,表达式将返回右边。

就是这样。所以在false && false中,左边是“假”,所以表达式返回左边false

我已经写了一篇关于|| and &&运营商的博文。它可以详细解释发生了什么。

相关问题