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

标签 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)

最佳答案

通过进行适当的比较:

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

The problem is that when x==y and z==1, x==y==z will return true.

是的,因为x == y将为true,所以你比较true == 1true 将转换为数字 1,并且 1 == 1true

关于JavaScript if (x==y==z) :,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25879449/

相关文章:

javascript - 循环遍历 JSON 对象列表

c++ - 当用户未输入 5 美分的倍数(5 到 100 之间)时生成错误

c++ - 运算符问题 ==

javascript - 如何在客户端使用 create-react-app 设置整个应用程序的环境变量

javascript - 有没有办法在 meteor 中进行批量更新?

javascript - "else if"在 jQuery 中不起作用?

python - Python中的 "(1,) == 1,"是什么意思?

c# - 如何处理相等比较中的空值?

javascript - Slider Revolution 幻灯片过渡不起作用

c - 如何在C中解决 "control may reach end of non-void function"?