不确定这是可行的,但我正在寻找一个真实的回报,例如.. var A = 100; 变量 B = 100;
(A == B == 100)
我认为这将返回 true。因为 A == B(它们都是 100),因此它们都等于 100。
但它总是假的。
编辑::: 谢谢,是的 - 我很感激回复.. 我希望有一些比做 (A === 100) && ( B === 100) 等更漂亮的速记......但是非常感谢。
不确定这是可行的,但我正在寻找一个真实的回报,例如.. var A = 100; 变量 B = 100;
(A == B == 100)
我认为这将返回 true。因为 A == B(它们都是 100),因此它们都等于 100。
但它总是假的。
编辑::: 谢谢,是的 - 我很感激回复.. 我希望有一些比做 (A === 100) && ( B === 100) 等更漂亮的速记......但是非常感谢。
要么它评估为
(A == B) == 100
或作为
A == (B == 100)
在这两种情况下,您都将布尔值与 100 进行比较。这当然总是错误的。你要
(A==100) && (B==100)
要查看发生了什么,您可能需要将下面的示例作为 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)));
A== 100 && B == 100
是你正在寻找的。
它转换true===100
为显然是false
。您可以使用a===b && b===100
因为第二个表达式之后是它(B == 100)
的值,所以它总是会被A
比较boolean
false
那是:
A == (B == 100)
变成
A == true
哪个评价为false
所以正确的版本应该是:
(A == 100) && (B == 100)
我认为它可以解释为
(A == B) && ((A == B) == 100)
显然,这不是真的