論理値と論理演算子
論理値
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