JavaScriptの論理演算子
・AND( && )
・OR( || )
・NOT( ! )
の3種類あります。
・AND( && )
両サイドが true の場合のみ true となります。
サンプルを書いてみます。
1 <= 4 && 's' === 's'; //true
9 > 10 && 5 >= 5; //false
'abc'.length === 3 && 5 + 3 === 10; //false
上記のように、片方だけ式が成立していても true にはなりません。
もう一つ例を見てみます。
パスワードの設定で、「6文字以上かつ空白を含まない」ものにしたいとします。
const password = prompt('パスワードを入力してください');
if (password.length >= 6 && password.indexOf(' ') === -1) {
console.log('パスワード成立');
} else {
console.log('パスワードのフォーマットが無効です。'); }
ポップアップが表示され、条件に該当する文字を入力すると、コンソールで「パスワード成立」と出力されています。
・OR( || )
片方が true なら true となります。
( || ) は英語小文字の「 l 」でも、大文字の「 I 」ではありません!
キーボードでは右上に位置する「 ¥マーク+shift 」で入力できます。
サンプルを書いてみます。
1 !== 1 || 10 === 10; //true
10 / 2 === 5 || null; //true
0 || undefined; //false
もう一つ例を挙げて、前回の映画チケットの条件分岐を使ってみます。
上記の文章、0~5歳または65歳以上が「無料」となっていますが、有料な人にだけ知らせたい場合は、
const age = 8;
if (!(age >= 0 && age < 5 || age >= 65)) {
console.log('有料です');
}
このように「!」を付け加えてあげればOKです。
論理演算子は使用率も高いので覚えておきましょう。
*1:age >= 0 && age < 5) || age >= 65) {
console.log('無料です');
} else if (age >= 5 && age < 10) {
console.log('子供料金です');
} else if (age >= 10 && age < 65) {
console.log('大人料金です');
} else {
console.log('無効な年齢です');
}
変数 age に0以上の数字を代入すれば見合ったコンソールが出力されます。
・NOT( ! )
!は true と false を反転させます。
!null; //true
!(2 === 2); //false
!(10 <= 50); //false
例えば、
const age = 8;
if ((age >= 0 && age < 5 || age >= 65