論理値と論理演算子
論理値
JavaScriptで利用できる「値」として、これまで文字列と数値を扱いました。 JavaScriptではこの他に、論理値と呼ばれる、「正しいか、正しくないか」を表すための値が存在します。
論理値は、true(真)またはfalse(偽)の2つだけです。ダブルクォーテーション"は必要ありません。通常の値ですので、変数に代入したり、計算に使ったりすることができます。
論理演算子
論理値に対して適用できる演算子が存在します。
document.write(true); // true
document.write(!false); // true
document.write(true && false); // false
document.write(true || false); // true
各演算子の意味は次の通りです。!のみが作用する対象を1つしかとらないことに注意してください。
| 演算子 | 意味 | 詳細 |
|---|---|---|
! | ~ではない | trueならばfalse、falseならばtrue |
&& | かつ | 両方trueならばtrue、どちらか1つでもfalseならばfalse |
|| | または | 両方falseならばfalse、どちらか1つでもtrueならばtrue |
具体的な使用例を考えてみましょう。
モンスターが大きいかどうかを表す変数isMonsterBigと、ハンターが強いかどうかを表す変数isHunterStrongが用意されています。このとき、ハンターがモンスターと戦うべきかどうかを表す変数shouldFightを作りたいとします。ハンターは自分が強いときかモンスターが小さいときに戦うべきだとしたら、変数shouldFightは次のようになるでしょう。
const isMonsterBig = true;
const isHunterStrong = false;
const shouldFight = isHunterStrong || !isMonsterBig; // false
比較演算子
比較演算子は、複数の値を比較して、単一の論理値を得ます。
年齢を判定するプログラムを考えましょう。
const age = 14;
document.write(age === 15); // false
document.write(age === 14); // true
===は左辺と右辺が等しいかどうか判定する比較演算子です。
2行目ではageと15とは等しくないのでfalseが、3行目ではageと14とは等しいのでtrueが表示されます。
各演算子の意味は次の通りです。
| 演算子 | 意味 | 詳細 |
|---|---|---|
=== | 等しい | 左辺と右辺が等しければtrue |
!== | 等しくない | 左辺と右辺が等しければfalse |
< | 小なり | 左辺が右辺より小さければtrue |
<= | 以下 | 左辺が右辺以下ならばtrue |
> | 大なり | 左辺が右辺より大きければtrue |
>= | 以上 | 左辺が右辺以上ならばtrue |
さらに具体的な使用例を考えてみましょう。
ジェットコースターに乗れるかどうかを表す変数canRideRollerCoastersを考えます。年齢を表す変数ageと身長を表す変数heightが与えられたとして、10歳以上かつ身長が120cm以上でないと乗れないとしたら以下のようになるでしょう。
const age = 15;
const height = 155;
const canRideRollerCoasters = age >= 10 && height >= 120; // true