From 074785cea106179cb3305637055ab0a009ca74f2 Mon Sep 17 00:00:00 2001 From: Peter Bengtsson Date: Tue, 8 Dec 2020 14:42:52 -0500 Subject: initial commit --- .../reference/statements/if...else/index.html | 213 +++++++++++++++++++++ 1 file changed, 213 insertions(+) create mode 100644 files/ru/web/javascript/reference/statements/if...else/index.html (limited to 'files/ru/web/javascript/reference/statements/if...else/index.html') diff --git a/files/ru/web/javascript/reference/statements/if...else/index.html b/files/ru/web/javascript/reference/statements/if...else/index.html new file mode 100644 index 0000000000..1f9d474145 --- /dev/null +++ b/files/ru/web/javascript/reference/statements/if...else/index.html @@ -0,0 +1,213 @@ +--- +title: if...else +slug: Web/JavaScript/Reference/Statements/if...else +tags: + - Выражение + - Условие +translation_of: Web/JavaScript/Reference/Statements/if...else +--- +
{{jsSidebar("Statements")}}
+ +

Инструкция 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)) {
+   /* сделать что-то */
+}
+
+ +

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

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
СпецификацияСтатусКомментарий
{{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')}}Начальное определение
+ +

Совместимость браузеров

+ +

{{CompatibilityTable}}

+ +
+ + + + + + + + + + + + + + + + + + + +
СвойствоChromeFirefox (Gecko)Internet ExplorerOperaSafari
Основная поддержка{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}
+
+ +
+ + + + + + + + + + + + + + + + + + + + + +
СвойствоAndroidChrome for AndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Основная поддержка{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}
+
+ +

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

+ + -- cgit v1.2.3-54-g00ecf