我想知道是否有一种快速方法可以在js中测试两个以上值的相等性。类似于 (= 6 6 6) 的东西。
在控制台中,我尝试了诸如...之类的事情
1 == 1 == 1 == 1
true
2 == 2 == 2 == 2
false
0 == 0 == 0
false
0 == 0 == 0 == 0
true
...这很有趣,但也令人困惑。
有没有一种快速的方法可以在js中做到这一点?
谢谢。
最佳答案
你得到意外行为的原因是因为我们需要稍微调整一下你对 js 的期望;) 2 == 2 == 2 == 2
进行了 3 次比较,全部从左到右。第一个比较是最左边的 2 == 2
,其计算结果为 true。之后,我们得到了与(本例中的)第三个 2
进行比较的第一次比较的结果。即,true === 2
,这是错误的。最后,我们得到 false === 2
,这也是 false。
将其可视化可能会有所帮助:
(((2==2)==2)==2)
我认为一般来说 a === b && b === c
可能就是您正在寻找的内容。
编辑:啊,抱歉,我一直将 ==
切换为 ===
。这只是习惯而已。这是我推荐的习惯。 ===
运算符不进行类型转换,因此它计算的是正确的值,而不是该值的转换版本。
关于javascript - 有没有一种快速方法可以同时测试两个以上值的相等性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27133655/