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