if...else

指定された条件がtrueの場合は処理文を実行し、falseの場合は別の処理文を実行します。

文法

if (condition)
   statement1
[else
   statement2]
condition
trueまたはfalseが評価される式を指定します。
statement1
conditionがtrueと評価された際に実行される処理文を書きます。 if文を更に入れ子にする事も含め、どのような処理文でも書くことが出来ます。 複数の文を実行するには、 ブロック文({})を使用してそれらの文をグループ化し、 何も実行しないのであれば、空文を指定します。
statement2
conditionがfalseと評価された際に実行される処理文と、そのelse句です。 ブロック文、if文を更に入れ子にする事も含め、どのような処理文でも書くことが出来ます。

例

else if句を作成するために、複数のif...else文を入れ子にする事が出来ます。 JavaScriptにはelseif(1単語)のキーワードが存在しないことに注意してください。

if (condition1)
   statement1
else if (condition2)
   statement2
else if (condition3)
   statement3
...
else
   statementN

下記はどのように動作するのか確認し易いように、入れ子に沿って適切にインデントされたものです。

if (condition1)
   statement1
else
   if (condition2)
      statement2
   else
      if (condition3)
...

複数行を実行するには、ブロック文({ ... })を使用します。 一般的には、常にブロック文を使用することが良い慣習とされており、 特に入れ子のif文ではそれが顕著に現れます。

if (condition) {
   statements1
} else {
   statements2
}

プリミティブの真偽値であるtrueとfalseを、 Booleanオブジェクトのtrueとfalseと混同しないでください。 undefined、null、0、NaN、 または空文字列("")では無い値と、値にfalseを持つBooleanオブジェクトを含む何らかのオブジェクトは、 条件文に渡された際にはtrueと評価されます。 下記は、その一例になります。

var b = new Boolean(false);
if (b) // この条件はtrueと判定されます。

注意事項

if...elseの使用例

if (cipher_char === from_char) {
   result = result + to_char;
   x++;
} else {
   result = result + clear_char;
}

else ifの使用例

JavaScriptには、elseifは存在しないことに注意してください。 elseとifの間にスペースを入れることで、書くことが出来ます。

if (x > 5) {

} else if (x > 50) {

} else {

}

条件式内での変数の代入について

コードをざっと見回した際に代入式と等式と見間違えられる可能性があるため、 条件式の中で変数の代入はしないことをお勧めします。 例えば、下記のようなコードは使用しないでください。

if (x = y) {
   /* 処理を行う */
}

もし、どうしても条件式の中で代入式が必要な場合は、 一般的な慣習として代入式の周りに更に丸括弧を追加します。 下記はその一例になります。

if ((x = y)) {
   /* 処理を行う */
}

仕様

ブラウザ互換性

デスクトップ
機能 Chrome Firefox
(Gecko)
IE Opera Safari
基本 ◯ ◯ ◯ ◯ ◯
モバイル
機能 Android Chrome for
Android
Firefox
Mobile
IE
Mobile
Opera
Mobile
Safari
Mobile
基本 ◯ ◯ ◯ ◯ ◯ ◯

関連項目

 Back to top

© 2017 Mozilla Contributors
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.

このページは、ページトップのURL先のMozilla Developer Network(以下、MDN)のコンテンツを翻訳した内容を基に構成されています。 構成について異なる点も含まれますので、下記の項目を確認し、必要に応じて元のコンテンツをご確認ください。 もし、誤訳などの間違いを見つけましたら、 @tomofまで教えていただければ幸いです。

  • 特定のブラウザに特化しすぎている情報やあまりにも古い情報、 または試験的に導入されているようなAPIや機能については、省略していることがあります。
  • 例やデモについて、実際にページ内で動作させる関係で一部ソースコードを変更している場合や、 その例で使用しているコンテンツの単語や文章などを日本人向けに変更しいてる場合があります。
  • MDNの更新頻度が高いため、元のコンテンツと比べ情報が古くなっている可能性があります。
  • "訳注:"などの断わりを入れた上で、日本人向けの情報の追記を行っている事があります。