MDN may have intermittent access issues April 18 13:00 - April 19 01:00 UTC. See whistlepig.mozilla.org for all notifications.

mozilla
Your Search Results

    条件演算子

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

    構文

    condition ? expr1 : expr2 

    引数

    condition
    truefalse かを評価する条件文です。
    expr1, expr2
    各々の値の場合に実行する式です。

    説明

    conditiontrue の場合、演算子は expr1 の値を選択します。そうでない場合は expr2 の値を選択します。例えば変数 isMember の値に基づいて別々のメッセージを表示するには、以下の構文を用いることができます:

    "The fee is " + (isMember ? "$2.00" : "$10.00")
    

    三項演算子の結果に基づいて、変数に代入することもできます:

    var elvisLives = Math.PI > 4 ? "Yep" : "Nope";

    多重の三項演算も可能です (注: 条件演算子は右結合です):

    var hadRelations = false,
      isSure = false,
      presidentQuote = hadRelations ? "Did not have relations" : isSure ? "Did not have relations" : "I admit";
      
    console.log( presidentQuote ); // コンソールに "I admit" と表示

    別々の処理を行うため、任意の位置で三項演算を用いることもできます:

    var bStop = false, nAge = 16;
    
    nAge > 18 ? location.assign("continue.html") : bStop = true;
    

    各々の場合に複数の処理を行うこともでき、その方法はそれぞれの文をコンマで区切ることです:

    var bStop = false, nAge = 23;
    
    nAge > 18 ? (
        alert("Ok, you can go."),
        location.assign("continue.html")
    ) : (
        bStop = true,
        alert("Sorry, your are too much young!")
    );
    

    値を代入する際に、複数の処理を行うこともできます。この場合、括弧内のコンマ区切りで最後の値が代入されます。

    var nAge = 16;
    
    var sURL = nAge > 18 ? (
        alert("Ok, you can go."), // alert は "undefined" を返しますが、括弧内のコンマ区切りで最後の値ではないため無視されます
        "continue.html" // nAge > 18 である場合に代入される値です
    ) : (
        alert("You are too much young!"),
        alert("Sorry :-("),
        // etc. etc.
        "stop.html" // !(nAge > 18) ではない場合に代入される値です
    );
    
    location.assign(sURL); // "stop.html"

    ドキュメントのタグと貢献者

    Contributors to this page: teoli, yyss
    最終更新者: teoli,
    サイドバーを隠す