JavaScript

条件演算子(三項演算子)

 編集:2022.08.07 by T.A.

条件に続いて疑問符(?)、そして条件が真値であった場合に実行する式、コロン(:)が続き、条件がfalsyであった場合に実行する式が最後に来ます。

JavaScript では唯一の、3 つのオペランドをとる演算子です。この演算子は、if 文のショートカットとしてよく用いられます。

条件 ? true用式 : false用式
条件 値が条件として使用される式です。
true用式 condition が truthy の値(true と等しいか、true に変換できる値)と評価された場合に評価される式です。
false用式 condition が falsy の値(false と等しいか、false に変換できる値)と評価された場合に評価される式です。

false についていえば、falsy になる可能性がある式は nullNaN0、空文字列("")、undefined です。condition がこのうちの何れかであれば、条件演算子の結果は false用式 の式を実行した結果になります。

var age = 26;
var beverage = (age >= 21) ? "ビール" : "ジュース";
D=beverage;	// "ビール"
null 値の扱い

よくある使い方の一つに、null になる可能性がある値を扱うというものがあります。

let greeting = person => {
    let name = person ? person.name : `お客さん`
    return `やあ、${name}`
}

D=greeting({name: `アリス`});	//="やあ、アリス"
D=greeting(null);	//="やあ、お客さん"
条件の連鎖

三項演算子は右結合で、すなわち以下のような方法で if … else if … else if … else の連鎖と同様に「連鎖」させることができます。

function example() {
    return condition1 ? value1
         : condition2 ? value2
         : condition3 ? value3
         : value4;
}

// 以下のものと同等です。

function example() {
    if (condition1) { return value1; }
    else if (condition2) { return value2; }
    else if (condition3) { return value3; }
    else { return value4; }
}

テスト