Mozilla's getting a new look. What do you think? https://mzl.la/brandsurvey

概要

if 文は、指定された条件が true なら文を実行します。条件が false なら、もう一方の文を実行することがあります。

構文

if (condition)
   statement1
[else
   statement2]
condition
true または false に評価される
statement1
condition が true に評価されるなら実行される文。さらにネストされた if 文を含む、どんな文であってもかまいません。複数の文を実行するためには、それらの文をグループ化するためにブロック文 ({ ... }) を使ってください。実行する文がない場合は、empty 文を使用してください。
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 および falseBoolean オブジェクトの true 値および false 値と混同しないでください。undefinednull0NaN、または空文字列 ("") でない任意の値、および値が false である Boolean オブジェクトを含む任意のオブジェクトは、条件文に渡されたときに true と評価されます。例:

var b = new Boolean(false);
if (b) // this condition evaluates to true

例: if...else を使う

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

else if を使う

JavaScript に elseif 構文はありませんので注意してください。elseif の間に空白を置いて記述します:

if (x > 5) {

} else if (x > 50) {

} else {

}

例: 条件式の中での代入

代入はコードを眺めたときに等式と混同される可能性があるので、条件式の中で単純な代入を使わないほうが望ましいです。たとえば、次のコードを使わないでください:

if (x = y) {
   /* do the right thing */
}

もし条件式の中で代入を使う必要があるのなら、代入の周りに追加の括弧を書くのが一般的な習慣です。例:

if ((x = y)) {
   /* do the right thing */
}

仕様

仕様書 策定状況 コメント
ECMAScript 2017 Draft (ECMA-262)
if statement の定義
ドラフト  
ECMAScript 2015 (6th Edition, ECMA-262)
if statement の定義
標準  
ECMAScript 5.1 (ECMA-262)
if statement の定義
標準  
ECMAScript 3rd Edition (ECMA-262)
if statement の定義
標準  
ECMAScript 1st Edition (ECMA-262)
if statement の定義
標準 最初期の定義

ブラウザ実装状況

機能 Chrome Firefox (Gecko) Internet Explorer Opera Safari
基本サポート (有) (有) (有) (有) (有)
機能 Android Chrome for Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
基本サポート (有) (有) (有) (有) (有) (有)

関連情報

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

タグ: 
 このページの貢献者: yyss, teoli, ethertank, Mgjbot, Nanto vi
 最終更新者: yyss,