3 つの JavaScript 変数値を比較したいのですが、それらは等しいので、関数を実行する必要があります。
if(vcount === tcount === lcount){
//do something;
}
および(この前の回答に従って)
if((vcount == tcount) && (tcount == lcount)){
//do something;
}
しかし、それは私にとってはうまくいきません。
3 つの JavaScript 変数値を比較したいのですが、それらは等しいので、関数を実行する必要があります。
if(vcount === tcount === lcount){
//do something;
}
および(この前の回答に従って)
if((vcount == tcount) && (tcount == lcount)){
//do something;
}
しかし、それは私にとってはうまくいきません。
次のコードを検討してください-
1===1===1
===
演算子は左右結合であるため、最初の部分が最初1===1
に評価されます。
1===1
戻りますtrue
。次に、次の比較があります
true===1
これは間違いなくfalse
、booleanが value と datatype を考慮するためとtrue
同じではないためです。1
===
boolean
場合は常に、それらを比較するためにfalse
使用すると必ず返されます。===
したがって、常に 2 番目の構文を使用して3 つの値を比較する必要があります。条件付き (三項) 演算子 (?:) を試してみてください。以下の例を参照してください。これは代替ソリューションの 1 つの方法です。
<!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>
他の人が言ったこととは別に、変数が正しい型であることを確認してください。たとえば、1 つは文字で、もう 1 つは整数です。toString(value) または parseInt(value,10) を実行して、それらがすべて同じであることを確認してください。