在编程的过程中,我的if语句出现了意想不到的结果。
世界上这段代码如何警告真实? 我没有找到任何可以帮助我W3S的东西,并且真的想知道为什么这些警报"真的"
window.alert(false == false == true); //alerts true
window.alert(false == (false == true));//even this alerts true
答案 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
,然后比较false
和false
返回true
答案 5 :(得分:0)
两者都是正确的。
案例1:false == false == true
这类似于(false == false) == true
评估是
false == false IS true
和true == true IS true
案例2:false == (false == true)
这类似于(false == true) == false
评估是
false == true IS false
和false == false IS true
希望这有帮助