時には、条件に基づき異なるアクションを実行する必要があります。
そのための if 文と、 “疑問符” 演算子とも呼ばれる条件付き演算子(3項演算子) "?" があります。
“if” 文
“if” 文は与えられた条件を評価します。結果が true であればコードを実行します。
例:
let year = prompt('In which year was ECMAScript-2015 specification published?', '');
if (year == 2015) alert( 'You are right!' );
上の例は、シンプルな等価チェック(year == 2015)ですが、より複雑にすることもできます。
実行する文が複数ある場合、コードブロックを波括弧で囲む必要があります。:
if (year == 2015) {
alert( "That's correct!" );
alert( "You're so smart!" );
}
たとえ1つの文しかない場合でも if を使用するときは波括弧 {} でコードブロックを囲むことを推奨します。これは可読性を向上させます。
Boolean 変換
if (…) 文は括弧の中の式を評価し、Boolean型に変換します。
チャプター 型変換 の変換ルールを思い出してみましょう:
- 数値
0, 空文字"",null,undefinedそしてNaNはfalseになります。そのため、これらは “偽とみなされる” 値とよばれています。 - 他の値は
trueになるため、“真とみなされる” 値と呼ばれます。
さて、下のコードですがこの条件は決して実行されません:
if (0) { // 0 は偽
...
}
また、この条件は – 常に処理されます:
if (1) { // 1 は真
...
}
次のように事前評価されたBool値を if に通すこともできます:
let cond = (year == 2015); // == は true または false を評価する
if (cond) {
...
}
“else” 句
if 文は任意の “else” ブロックを持つ場合があり、それは条件が偽の場合に実行されます。
例: