0 javascript if-statement equals-operator
我有3个随机数(在这种特殊情况下,介于1和7之间,但这并不重要).我想通过使用来检查我是否得到了"三种"
if (x==y==z) {
code
}
Run Code Online (Sandbox Code Playgroud)
问题是何时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
Run Code Online (Sandbox Code Playgroud)
x==y==z 实际上被评估为
(x == y) == z
Run Code Online (Sandbox Code Playgroud)
也就是说,你要么比较true == z或false == z我想这是不是你想要的.另外,它进行类型转换.给你一个极端的例子:
[1,2,4] == 42 == "\n" // true
Run Code Online (Sandbox Code Playgroud)
问题是,当
x==y和z==1,x==y==z将返回true.
是的,因为x == y会true,所以你比较true == 1.true将被转换为数字1而且1 == 1是true.