駆け出しのエンジニア日記

プログラミング言語勉強中の奮闘日記

JavaScriptの論理演算子

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 無料
 // 5-10 子供料金
 // 10-65 大人料金
/ / 65+ 無料
const age = 8;
if *1 {
console.log('無料です');
}

上記の文章、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