比较3个javascript变量的值

比较3个javascript变量的值,javascript,jquery,Javascript,Jquery,我想比较3个javascript变量值,它们相等,需要执行一个函数 if(vcount === tcount === lcount){ //do something; } 及(根据) 但这对我不起作用 尝试使用有帮助的条件(三元)运算符(?:)。请参考下面的例子 这是另一种解决办法 <!DOCTYPE html> <html> <body> <button onclick="myFunction()">Try it</button>

我想比较3个javascript变量值,它们相等,需要执行一个函数

if(vcount === tcount === lcount){

//do something;
}
及(根据)

但这对我不起作用

尝试使用有帮助的条件(三元)运算符(?:)。请参考下面的例子 这是另一种解决办法

<!DOCTYPE html>
<html>
<body>

<button onclick="myFunction()">Try it</button>

<p id="demo"></p>

<script>
function myFunction()
{
document.getElementById("demo").innerHTML= getResult(7,5,5);
}

function getResult(x,y,z){
 return x===y?x===z?true:false:false;
}

</script>

</body>
</html>

试试看

函数myFunction() { document.getElementById(“demo”).innerHTML=getResult(7,5,5); } 函数getResult(x,y,z){ 返回x==y?x==z?真:假:假; }
除了其他人所说的之外,请验证变量的类型是否正确。例如,一个可能是字符,另一个可能是整数。尝试通过执行toString(value)或parseInt(value,10)来验证它们是否相同。

有多种方法可以做到这一点。我更喜欢用这种方法处理n个变量

    function isEqual1() {
        var val = arguments[0],
            equal = true;
        for (var i = 0; i < arguments.length; i++) {
            equal = (arguments[i] === val);
            if (!equal) return false;
        }
        return equal;
    }
结果

    console.log(isEqual1(1, true, false, "xyz"));
    console.log(isEqual1(true, true, true, true));
    console.log(isEqual2(true, 123, true, true));
    console.log(isEqual2(true, true, true, true));

演示:

考虑以下代码-

1===1===1
由于
==
运算符是左右关联的,因此首先计算
1===1
的第一部分

1==1
返回
true
。然后是下面的比较

true===1
这肯定是
false
,因为布尔值
true
1
不同,因为
==
考虑值和数据类型


因此,每当第三个参数为
布尔值时,如果使用
==
进行比较,它肯定会返回
false
。因此,您应该始终使用第二种语法来比较任意3个值。或者您是否希望
(vcount===tcount)和&(tcount==lcount)
不工作是什么意思。您可以发布一个JSFIDLE来显示不工作的内容吗?您的第二个代码示例应该工作正常。您的代码应该工作正常。最好勾选“不工作”是一个不足以让任何人知道如何帮助你的描述。@FelixKling:同意你的观点
1===1===1
true===1