これらの2つの演算子はよく使用され、常に混乱して記録されています。 。 。
a()&& b():a()を実行した後にtrueが返された場合、b()が実行され、bの値が返されます。 a()を実行した後にfalseが返された場合、式全体がa()の値を返し、b()は実行されません。
a()|| b():a()を実行した後にtrueが返された場合、式全体がa()の値を返し、b()は実行されません。 a()を実行した後にfalseが返された場合、b()が実行され、b()の値が返されます。
&&優先度は||よりも高い
コードは次のとおりです
アラート((1 && 3 || 0)&& 4); // result 4①
アラート(1 && 3 || 0 && 4); // result 3②
アラート(0 && 3 || 1 && 4); // result 4③
分析します
ステートメント①:1 && 3 return 3 => 3 || 0戻る3 => 3 && 4戻り4
ステートメント②:最初に1 && 3を実行して3を返し、0 && 4を実行して0を実行し、最後に結果比較3 || 0を実行して3を返します3
ステートメント③:最初に0 && 3を実行して0を返し、1 && 4を実行して4を返し、最後に結果比較0 || 4を実行して4を返します
注:ゼロではない整数は真で、未定義で、nullおよび空の文字列が偽です。