不确定这是否可行,但我正在寻找真相回报,例如.. var A = 100; var B = 100;
(A == B == 100)
我认为这会回归真实。因为A == B(它们都是100)并且因此它们都等于100。
但它总是错误的。
编辑:::谢谢,是的 - 我很感激回复...我希望有一些漂亮的感觉而不是做(A === 100)&& (B === 100)等......但是非常感谢。答案 0 :(得分:13)
评估为
(A == B) == 100
或
A == (B == 100)
在这两种情况下,你都将布尔值与100进行比较。这当然总是假的。你想要
(A==100) && (B==100)
要查看发生了什么,您可能需要运行the Example below as JSFiddle:
var A = 100;
var B = 100;
alert("B == 100: " + (B == 100));
alert("A == (B == 100):" + (A == (B == 100)));
alert("A == B:" + (A == B));
alert("(A == B) == 100:" + ((A == B) == 100));
alert("A == B == 100):" + (A == B == 100));
alert("(A == 100) && (B == 100):" + ((A == 100) && (B == 100)));
答案 1 :(得分:2)
A== 100 && B == 100
您在寻找什么。
答案 2 :(得分:2)
它转换为true===100
,显然是false
。您可以使用a===b && b===100
答案 3 :(得分:1)
因为在(B == 100)
之后的第二个表达式A
的值与boolean
进行比较所以它始终为false
即:
A == (B == 100)
哪个成为
A == true
评估为false
所以正确的版本应该是:
(A == 100) && (B == 100)
答案 4 :(得分:0)
我认为它可以解释为
(A == B) && ((A == B) == 100)
显然,这不是真的