三項演算子とは
三つの非演算子(オペランド)をとり、条件式から真の場合の値もしくは偽の場合の値を返す演算子になります。
同じく真偽値によって処理を分ける関数としてif文がありますが、機能としてはそれとよく似たものになりますが、条件判定から値返却まで一行で記述できるというメリットがあります。
構文
三項演算子は以下のように表現します。
条件式 ? 真の場合に返す値 : 偽の場合に返す値
以下ではその使用方法を詳しく確認します。
使用例
一般的な使用方法
単純な条件式の真偽値を判定し、それに応じて値を返す例です。
この例ではmathScore
として90
の値を格納し、その後三項演算子の処理を行っています。
三項演算子の条件式としてmathScore > 80
を評価し、80
より大きければLarger Than 80
、小さければSmaller Than 80
と表示します。
最初の定数として90
を代入しているので、console.log
にはLarger Than 80
と表示されます。
const mathScore = 90;
const isMathScoreLT80 = mathScore > 80 ? "Larger Than 80" : "Smaller Than 80";
console.log(isMathScoreLT80);
//Larger Than 80 と表示されます。
else ifを繋げる
三項演算子では、if
文で言うところのelse if
を複数繋げるといった処理も可能です。
以下のようにして使用します。
let examScore = function (score) {
return score < 60 ? "drop a class"
: score < 80 ? "good score"
: "excellent score";
};
console.log(examScore(70));
//good scoreと表現されます。
Truthy・Falsyな値について
Boolean()
メソッドなどを用いて真偽値に変換した際、TrueやFalseに変換される値のことを指します。つまり、Boolean関数にて変換した時、Trueに変換されるものをTruthyな値、Falseに変換されるものをFalsyな値と言います。
基本的にはFalsyな値の数は少ないので、こちらを覚えたのち、それ以外のものをTrythyな値だと認識しておくといいと思います。
Falsyな値の一例
- False
- 0(数字)
- ""(空文字)
- null
- undefined
- NaN
論理和(OR条件)と論理積(AND条件)について
論理和とは、条件式を左側から順番に調べていき、一つでも条件を満たすものがあればTrueを返し、全ての条件を満たさない場合のみFalseを返します。
論理積とは、すべての条件を満たした場合のみTrueを返し、それ以外のものはFalseを返します。