Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/432.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript (false==false==true)怎么可能是真的_Javascript_Boolean - Fatal编程技术网

Javascript (false==false==true)怎么可能是真的

Javascript (false==false==true)怎么可能是真的,javascript,boolean,Javascript,Boolean,当我在编程时,我在if语句中得到了一个意想不到的结果 这段代码究竟是怎么做到的? 我在W3S没有找到任何可以帮助我的东西,我真的很想知道为什么这些警报是“真的” false==true是真的吗?我认为这显然不是真的,因此(false==true)是false,因此false==(false==true)(我们已经注意到第二部分是假的) 至于第一个例子——实际上,无论评估的顺序如何,它都是正确的(我把它作为一个逻辑练习留给你)。但是javascript保证计算顺序是从左到右的,因此该表达式与(fa

当我在编程时,我在if语句中得到了一个意想不到的结果

这段代码究竟是怎么做到的? 我在W3S没有找到任何可以帮助我的东西,我真的很想知道为什么这些警报是“真的”


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


至于第一个例子——实际上,无论评估的顺序如何,它都是正确的(我把它作为一个逻辑练习留给你)。但是javascript保证计算顺序是从左到右的,因此该表达式与
(false==false)==true
相同。我再次让你们来证明这是真的

第一例

false == false == true
false == (false == true)
将被评估为

(false == false) == true
因为,默认情况下。减少到

true == true
因为
false
实际上等于
false
。这就是为什么它的计算结果为
true

第二种情况

false == false == true
false == (false == true)
减少到

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

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


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

执行将从左侧开始

window.alert(false == false == true); 
首先,
false==false
为true。然后
true==true
为true

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

false==true
为false


然后
false==false
为真。

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

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

两者都是正确的

案例1:
false==false==true

这类似于
(false==false)==true

评估是
false==false为true
true==true为true

案例2:
false==(false==true)

这类似于
(false==true)==false

评估是
false==true为false
false==false为true


希望这有帮助,因为
(false==true)
==false和
false==false
equal-true如果我指出你也不能写
2<3<4
,但你需要写
2<3&&3<4
,这有帮助吗,你应该知道你不必一直使用
window.alert
来调试东西。在Chrome中,ctrl+shift+j将打开开发控制台,您可以在其中评估javascript。在Firefox中,ctrl+shift+i。或者只是使用,甚至不用麻烦浏览器。而且MDN比W3S更受欢迎。
window.alert(false == false == true);