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

0 javascript if-statement equals-operator

我有3个随机数(在这种特殊情况下,介于1和7之间,但这并不重要).我想通过使用来检查我是否得到了"三种"

if (x==y==z) {
code
}
Run Code Online (Sandbox Code Playgroud)

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

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

Fel*_*ing 5

通过适当的比较:

x === y && y === z
// due to transitivity, if the above expression is true, x === z must be true as well
Run Code Online (Sandbox Code Playgroud)

x==y==z 实际上被评估为

(x == y) == z
Run Code Online (Sandbox Code Playgroud)

也就是说,你要么比较true == zfalse == z我想这是不是你想要的.另外,它进行类型转换.给你一个极端的例子:

[1,2,4] == 42 == "\n" // true
Run Code Online (Sandbox Code Playgroud)

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

是的,因为x == ytrue,所以你比较true == 1.true将被转换为数字1而且1 == 1true.