--- title: if...else slug: Web/JavaScript/Reference/Statements/if...else tags: - JavaScript - else - if - Оператор translation_of: Web/JavaScript/Reference/Statements/if...else ---
Умовний оператор if виконує команду, якщо вказана умова є {{Glossary("truthy", "правдивою")}}. Якщо умова є {{Glossary("falsy", "хибною")}}, може бути виконана інша команда.
if (condition) statement1 [else statement2]
conditionstatement1if. Для виконання кількох команд використовуйте блок ({ ... }), щоб згрупувати ці команди. Щоб не виконувати жодних команд, використайте порожній оператор.statement2else. Може бути будь-яка команда, в тому числі блок команд та вкладені оператори 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 з правдивістю та хибністю об'єкта {{jsxref("Global_Objects/Boolean", "Boolean")}}. Будь-яке значення, яке не є false, undefined, null, 0, -0, NaN, або порожнім текстовим рядком (""), і будь-який об'єкт, в тому числі об'єкт Boolean, чиє значення дорівнює false, вважається {{Glossary("truthy", "правдивим")}} при використанні у якості умови. Для прикладу:
var b = new Boolean(false); if (b) // ця умова є правдивою
if...elseif (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)) {
/* зробити що треба */
}
| Специфікація | Статус | Коментар |
|---|---|---|
| {{SpecName('ESDraft', '#sec-if-statement', 'if statement')}} | {{Spec2('ESDraft')}} | |
| {{SpecName('ES6', '#sec-if-statement', 'if statement')}} | {{Spec2('ES6')}} | |
| {{SpecName('ES5.1', '#sec-12.5', 'if statement')}} | {{Spec2('ES5.1')}} | |
| {{SpecName('ES3', '#sec-12.5', 'if statement')}} | {{Spec2('ES3')}} | |
| {{SpecName('ES1', '#sec-12.5', 'if statement')}} | {{Spec2('ES1')}} | Початкове визначення |
{{Compat("javascript.statements.if_else")}}