如何(false == false == true)为真

时间:2015-04-06 12:16:44

标签: javascript boolean

在编程的过程中,我的if语句出现了意想不到的结果。

世界上这段代码如何警告真实? 我没有找到任何可以帮助我W3S的东西,并且真的想知道为什么这些警报"真的"

window.alert(false == false == true); //alerts true
window.alert(false == (false == true));//even this alerts true

6 个答案:

答案 0 :(得分:10)

第一个案例

false == false == true

将被评估为

(false == false) == true

因为expressions are evaluated from left to right,默认情况下。减少到

true == true

因为false实际上等于false。这就是它被评估为true的原因。

第二种情况

false == (false == true)

减少到

false == false

因为false不等于true。这就是为什么整个表达式为true,因为false等于false

答案 1 :(得分:4)

执行将从左侧开始。

window.alert(false == false == true); 

首先false== false是真的。那么true==true就是真的。

在第二种情况下,因为您使用了将首先执行的括号()

false == true是假的。

然后false == false为真。

答案 2 :(得分:3)

false == true是真的吗?我认为很明显这不是真的,因此(false == true)false,因此false == (false == true)(因为我们已经注意到第二部分是假的)。

至于第一个例子 - 实际上无论评价的顺序如何,它都会成立(我把它作为一个逻辑练习留给你)。仍然javascript保证评估顺序从左到右,因此该表达式与(false == false) == true相同。我再次告诉你,证明这是真的。

答案 3 :(得分:1)

false == false == true

false == false,这是true,等于true

false == (false == true)

false == true,这是false,等于false

答案 4 :(得分:0)

第一行 - 从左到右比较false == false true,然后与true比较true

第二行 - 从左到右比较(false == true) false,然后比较falsefalse返回true

答案 5 :(得分:0)

两者都是正确的。

案例1:false == false == true
这类似于(false == false) == true

评估是 false == false IS truetrue == true IS true

案例2:false == (false == true)
这类似于(false == true) == false

评估是 false == true IS falsefalse == false IS true

希望这有帮助