メインコンテンツまでスキップ

論理値と論理演算子

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

論理値に対してよく使用される演算子に、!&&||があります。

!単項演算子の一種で、作用する値のtruefalseを反転させます。&&は両辺が共にtrueのときtrue||は両辺のいずれかがtrueのときtrueになります。

ヒント

論理値が代入されている変数は、通常iscanshouldなどの単語を先頭に置き、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の部分が評価され、age20が代入されます。実は、代入演算子の式の値は右辺そのままの値です。そのため、このプログラムは最終的にlet isTwenty = 20となり、定数isTwentyには論理値ではなくただの数値である20が代入されてしまいます。