論理演算子
複数の関係演算子や真偽値等を組み合わせる演算子を論理演算子といい、&&,||,!が該当します。
&&は左右の式が共にtrueの場合にtrueを返却します。
もう少し内部的な処理の話をすると、
左側を実行してfalseの場合、右側が実行されません。
左側がtrueの場合、右側が実行されます。
...
console.log(userType);
// xは10
console.log(x > 5 && x < 20); // 左右ともにtrueのため、true
console.log(x > 15 && x < 20); // 左側がfalseのため、false
console.log(x > 5 && x < 9); // 右側がfalseのため、false
||は左右の式の片方がtrueの場合にtrueを返却します。
こちらは
左側を実行してfalseの場合、右側を実行します。
左側がtrueの場合、右側は実行されません。
...
console.log(x > 5 && x < 9); // 右側がfalseのため、false
console.log(x > 5 || x < 9); // 左側がtrueのため、true
console.log(x > 16 || x < 20); // 右側がtrueのため、true
console.log(x > 16 || x < 9); // 左右ともにfalseのため、false
!は後に続く条件式や真偽値を反転させます。
少し話は変わりますが、Truthy、Falsyな値に関して説明します。
Truthy、Falsyな値とは任意な値を強制的に論理型に変換することです。
Falsyな値は以下が該当します。
上記以外はTruthyな値になります。
上記を考慮すると、真偽値以外の値も使用することでき、trueとなる場合は、その使用した値を返却することができます。