論理値と論理演算子
JavaScript で利用できる「値」として、文字列と数値を扱いました。JavaScript では他に、論理値と呼ばれる、「正しいか、正しくないか」を表すた めの値の種類が存在します。
論理値は、true
(真)またはfalse
(偽)の2つだけです。通常の値ですので、変数に代入したり、計算することも可能です。
論理演算子
const isMonsterBig = true;
const isMonsterSmall = !true; // false
const isHunterStrong = false;
const shouldEscape = !isHunterStrong && isMonsterBig; // true
const shouldFight = isHunterStrong || isMonsterSmall; // false
論理値に対してよく使用される演算子に、!
、&&
、||
があります。
!
は単項演算子の一種で、作用する値のtrue
とfalse
を反転させます。&&
は両辺が共にtrue
のときtrue
、||
は両辺のいずれかがtrue
のときtrue
になります。
ヒント
論理値が代入されている変数は、通常is
やcan
、should
などの単語を先頭に置き、Yes / No 疑問文と同様の語順をとる場合が多いです。現在形の動詞を用いる場合は、三人称単数とします(userExists
等)。
比較演算子
比較演算子を用いると、複数の値を比較して、その結果の論理値を得る ことができます。
const age = 15;
const height = 155;
const isFourteen = age === 14; // false
const isNotFourteen = age !== 14; // true
const isChild = age < 20; // true
const canRideRollerCoasters = age >= 10 && height >= 140; // true
===
は両辺が等しいとき、!==
は両辺が等しくないときにtrue
となります。<
や>=
などは見ての通りです。なお、&&
や||
よりも比較演算子の方が優先度が高いため、複数の条件を「かつ」「または」などで組み合わせることは容易です。
危険
=
は比較演算子ではありません。常に代入演算子です。
let age = 15;
let isTwenty = age = 20;
上記のプログラムの 2 行目において、まずはage = 20
の部分が評価され、age
に20
が代入されます。実は、代入演算子の式の値は右辺そのままの値です。そのため、このプログラムは最終的にlet isTwenty = 20
となり、定数isTwenty
には論理値ではなくただの数値である20
が代入されてしまいます。