--- 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]
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
з правдивістю та хибністю об'єкта {{jsxref("Global_Objects/Boolean", "Boolean")}}. Будь-яке значення, яке не є false
, undefined
, null
, 0
, -0
, NaN
, або порожнім текстовим рядком (""
), і будь-який об'єкт, в тому числі об'єкт Boolean, чиє значення дорівнює false, вважається {{Glossary("truthy", "правдивим")}} при використанні у якості умови. Для прикладу:
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)) { /* зробити що треба */ }
Специфікація | Статус | Коментар |
---|---|---|
{{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")}}