if...else

Умовний оператор if виконує команду, якщо вказана умова є правдивою. Якщо умова є хибною, може бути виконана інша команда.

Синтаксис

if (condition)
   statement1
[else
   statement2]
condition
Вираз, який вважається або правдивим, або хибним.
statement1
Команда, що виконується, якщо умова є правдивою. Може бути будь-яка команда, в тому числі вкладені оператори if. Для виконання кількох команд використовуйте блок ({ ... }), щоб згрупувати ці команди. Щоб не виконувати жодних команд, використайте порожній оператор.
statement2
Команда, що виконується, якщо умова є хибною та присутній блок else. Може бути будь-яка команда, в тому числі блок команд та вкладені оператори if.

Опис

Можна додавати вкладені вирази if...else для створення конструкції else if. Зауважте, що у JavaScript не існує ключового слова elseif (одним словом).

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. Будь-яке значення, яке не є false, undefined, null, 0, -0, NaN, або порожнім текстовим рядком (""), і будь-який об'єкт, в тому числі об'єкт Boolean, чиє значення дорівнює false, вважається правдивим при використанні у якості умови. Для прикладу:

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 > 50) {
  /* зробити що треба */
} else if (x > 5) {
  /* зробити що треба */
} else {
  /* зробити що треба */
}

Присвоєння всередині умовного виразу

Не рекомендовано використовувати прості присвоєння в умовному виразі, тому що присвоєння можна переплутати з порівнянням при швидкому перегляді коду. Наприклад, не використовуйте наступний код:

if (x = y) {
  /* зробити що треба */
}

Якщо вам потрібно використати присвоєння в умовному виразі, загальноприйнятим є використання додаткових дужок навколо присвоєння. Наприклад:

if ((x = y)) {
  /* зробити що треба */
}

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

Специфікація Статус Коментар
ECMAScript Latest Draft (ECMA-262)
The definition of 'if statement' in that specification.
Draft
ECMAScript 2015 (6th Edition, ECMA-262)
The definition of 'if statement' in that specification.
Standard
ECMAScript 5.1 (ECMA-262)
The definition of 'if statement' in that specification.
Standard
ECMAScript 3rd Edition (ECMA-262)
The definition of 'if statement' in that specification.
Standard
ECMAScript 1st Edition (ECMA-262)
The definition of 'if statement' in that specification.
Standard Початкове визначення

Сумісність з веб-переглядачами

Update compatibility data on GitHub
DesktopMobileServer
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome for AndroidFirefox for AndroidOpera for AndroidSafari on iOSSamsung InternetNode.js
if...elseChrome Full support 1Edge Full support 12Firefox Full support 1IE Full support 3Opera Full support YesSafari Full support YesWebView Android Full support 1Chrome Android Full support 18Firefox Android Full support 4Opera Android Full support YesSafari iOS Full support YesSamsung Internet Android Full support 1.0nodejs Full support Yes

Legend

Full support  
Full support

Див. також