Javascript:false&&假是假的?

时间:2017-05-26 16:27:52

标签: javascript operators boolean-logic

所以,我做了一些搜索,看起来还没有被问过,但我可能错了。

逻辑上

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

无论其

javascript似乎不是这种情况。我在console中运行了上述内容,这是我从FireFox&&铬:

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

我已经找到solution但是认真对待?为什么?我认为这是标准行为。

它甚至在Java documentation中说logical AND | &&

4 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

每次使用AND设置假表达式时,等式的其余部分无关紧要,因为每个表达式必须为TRUE才能使结果为真。

false&& true表示:

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

另一个例子:

true || (true&& false)

在这种情况下,你这样读:

是“true”true还是......“true”和“false”是真的吗?

第一个被评估为真,所以没有必要验证第二个等式(因为其中一个已经是真的),实际上它没有。优化。

答案 2 :(得分:1)

使用const TodoList = ({todos}) => { let todoNodes = todos.map(todo => { return <li>{todo.text}</li> }); return <div> {todoNodes} </div>; } 运算符的表达式的结果基于以下规则确定:

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

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

就是这样。所以在&&中,左侧是“falsey”,因此表达式返回左侧false && false

我实际上写了一篇关于|| and &&运营商的博文。它可以解释正在发生的事情。

答案 3 :(得分:0)

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

表示如果第一个值是真值(可强制为真),它将评估第二个值,如果第二个值是真实的第三个值,则最后一个值将是表达式的结果。

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

Operator precedence MDN