私は何かをさらに明確にしたかったのです。論理&&および|| JavaScriptの演算子
は、これを考慮してください
var a = 42;
var b = "abc";
var c = null;
a || b; // 42
a && b; // "abc"
c || b; // "abc"
c && b; // null
私が知っている||
オペレータのための、第一オペランドにテストが真である場合、最初のオペランドの値に||
式の結果(AまたはC)。テストが偽である場合、式||
は第2オペランド(b)の値になります。
逆に、&&
演算子の場合、テストが真の場合、&&
式は第2オペランド(b)の値になります。テストがfalseの場合、&&
表現最初のオペランドの値の結果(aまたはc)
だから、あなたのような値を連鎖して&&
と||
演算子を使用する場合、正確に何が起こっているのか:
if(a && b && c && d && e){
//do something;
}
if(a || b || c || d || e){
//do something
}
値を連結するときに正確に何が起こっていますか?最初の例(&&
演算子を含む)ではaがtrueの場合はbが正しく返されるはずですか?その時点でcやdも考慮されていますか?
https://developer/ – ceejayoz
最初の式では、c、d、およびeは間違いなく無視されます(aまたはbが偽であり、式が短絡していない限り)。 &&の連鎖では、戻り値は最初の偽の式、またはすべてが真実なら最終式になります。実際に何かに結果を代入していないときは、返されるかどうかについては心配する必要はありません。最初の式はa、bの場合に実行されます。 c。 d。 eはすべて真実であり、少なくとも1つが真実である限り、第2の表現が実行される。 – PMV
本当に有益な応答でそれをクリアしてくれてありがとう! –