MDN wants to learn about developers like you: https://qsurvey.mozilla.com/s3/MDN-dev-survey

Выражение if выполняет выражение, если указанное условие выполняется (истинно). Если условие не выполняется (ложно), то другое выражение может быть выполнено.

Синтаксис

if (условие)
   выражение1
[else
   выражение2]
условие
Выражение, которое является либо истинным, либо ложным.
выражение1
Выражение, выполняемое в случае, если значение "условиe" истинно (true). Может быть любым выражением, в том числе и вложенным if. Для группировки нескольких выражений используется блок ({...}), Когда никакого действия не требуется, может использоваться пустое выражение.
выражение2
Выражение, выполняемое в случае, если значение "условиe" ложно (false). Может быть любым выражением, в том числе и вложенным if. Выражения тоже  можно группировать в блок.

Описание

Несколько команд if ... else могут быть вложены для создания условия else if. Обратите внимание, что в JavaScript нет ключевого слова elseif (в одно слово).

if (условие1)
   выражение1
else if (условие2)
   выражение2
else if (условие3)
   выражение3
...
else
   выражениеN

Чтобы увидеть, как это работает, ниже представлен пример правильного вложения с отступами:

if (условие1)
   выражение1
else
   if (условие2)
      выражение2
   else
      if (условие3)
...

Чтобы выполнить несколько выражений в условии, используйте блочный оператор ({...}) для группирования этих выражений. В общем, хорошей практикой всегда является использование блочных операторов, особенно в коде, включающем вложенные операторы if:

if (условие) {
   выражения1
} else {
   выражения2
}

Не путайте примитивные логические значения true и false с правдивостью или ложностью булева объекта. Любое значение, которое не undefined, null, 0, NaN или пустая строка (""), и любой объект, включая объект Boolean, значение которого является ложным, считается правдивым при использовании в качестве условия. Например:

var b = new Boolean(false);
if (b) // это условие истинно

Примеры

Использование 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)) {
   /* сделать что-то */
}

Спецификации

Спецификация Статус Комментарий
ECMAScript Latest 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
Основная поддержка (Да) (Да) (Да) (Да) (Да) (Да)

Смотрите также

Метки документа и участники

 Внесли вклад в эту страницу: GraceAredel, alexbaumgertner, ultrinnan
 Обновлялась последний раз: GraceAredel,