Javascript if(x == y == z):

时间:2014-09-16 22:33:12

标签: javascript if-statement equals-operator

我有3个随机数(在这个特定情况下,介于1和7之间,但这并不重要)。 我想通过

检查我是否有“三种”
if (x==y==z) {
code
}

问题在于x==yz==1 x==y==z将返回true。如何检查x,y和z是否实际获得了相同的值?

示例:5==5==1将返回true,如何专门检查5==5==5? (不包括5==5==1

2 个答案:

答案 0 :(得分:5)

通过适当的比较:

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 == zfalse == z。另外,它进行类型转换。给你一个极端的例子:

[1,2,4] == 42 == "\n" // true
  

问题是当x==yz==1时,x==y==z将返回true。

是的,因为x == y将是true,所以您要比较true == 1true将转换为11 == 1true

答案 1 :(得分:1)

您应该检查单独的&&操作

if(x == y && x == z){
   //all are equal
}