我有 3 个随机数(在这个特定情况下是 1 到 7 之间,但这并不重要)。 我想使用
检查我是否得到了“三样”if (x==y==z) {
code
}
问题是当 x==y
和z==1
x==y==z
将返回 true。如何检查 x、y 和 z 是否实际上具有相同的值?
示例:5==5==1
将返回true,我如何检查5==5==5
具体来说? (不包括5==5==1
)
最佳答案
通过进行适当的比较:
x === y && y === z
// due to transitivity, if the above expression is true, x === z must be true as well
<小时/>
x==y==z
实际上计算为
(x == y) == z
即您正在比较 true == z
或 false == z
我认为这不是您想要的。此外,它还进行类型转换。举个极端的例子:
[1,2,4] == 42 == "\n" // true
The problem is that when
x==y
andz==1
,x==y==z
will return true.
是的,因为x == y
将为true
,所以你比较true == 1
。 true
将转换为数字 1
,并且 1 == 1
为 true
。
关于JavaScript if (x==y==z) :,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25879449/