?: 演算子
条件に応じて 2 つのステートメントのどちらかを実行します。
test ? statement1 : statement2
引数
- test
ブール式を指定します。 - statement1
test が真 (true) の場合に、実行するステートメントを指定します。複合ステートメントも指定できます。 - statement2
test が偽 (false) の場合に、実行するステートメントを指定します。複合ステートメントも指定できます。
解説
?: 演算子を使用すると、if...else ステートメントの内容を簡潔に表すことができるので、if...else ステートメントが記述しづらい長い式の中などで利用します。次に例を示します。
var now = new Date();
var greeting = "皆さん、" + ((now.getHours() > 17) ?"こんばんは":"こんにちは");
この例は、午後 6 時より前では "皆さん、こんにちは"、午後 6 時以降では "皆さん、こんばんは" という文字列を作成します。上記の例は、if...else ステートメントを使用すると、次のようになります。
var now = new Date();
var greeting = "皆さん、";
if (now.getHours() > 17)
greeting += "こんばんは";
else
greeting += "こんにちは";