JavaScript. Тернарные операторы. Инструкции if else

Составные инструкции позволяют использовать множество инструкций там, где допускается использовать только одну инструкцию, например в качестве тела условной инструкции if.

JavaScript. Тернарные операторы. Инструкции if else

» » Сообщение:

По умолчанию интерпретатор JavaScript выполняет инструкции одну за другой в порядке их следования в исходном коде.
В тех случаях, когда выполнение или невыполнение некоторых инструкций должно зависеть от выполнения или невыполнения некоторого условия, используются условные (управляющие) конструкции.

Составные инструкции

Составная инструкция - это просто последовательность инструкций, заключённая в фигурные скобки. Таким образом, следующие строки кода рассматриваются как одна инструкция:

Код: Выделить всё Развернуть
{
  x = 5;
  alert(x);
  a = (x + y) * 2;
}

Составную инструкцию обычно называют просто блоком кода или телом другой инструкции.
Обратите внимание, что составная инструкция не завершается точкой с запятой. Отдельные инструкции внутри блока завершаются точками с запятой, однако сам блок нет.

Составные инструкции позволяют использовать множество инструкций там, где допускается использовать только одну инструкцию, например в качестве тела условной инструкции if.

Инструкция if

Инструкция if имеет две формы.
Первая:

JavaScript. Синтаксис инструкции if в JavaScript
JavaScript. Синтаксис инструкции if в JavaScript

Сначала вычисляется значение выражения.
Полученное значение, если необходимо, неявно преобразуется к логическому типу. Само выражение называется условием выполнения инструкции if или просто условие.
Если результатом вычисления выражения является истинное значение, то инструкция выполняется.
Если выражение возвращает ложное значение, то инструкция не выполняется.

script Код: Выделить всё Развернуть
var num;
 
if (!num)     // Если переменная num имеет ложное значение
  num = 123;  // Присвоить ей значение 123
 
document.write("num: " + num);

Синтаксис JavaScript позволяет вставить только одну выполняемую инструкцию после инструкции if, однако если требуется выполнить более одной инструкции, её всегда можно заменить блоком инструкций:

JavaScript. Синтаксис инструкции if с телом, состоящим из нескольких инструкций, в JavaScript
JavaScript. Синтаксис инструкции if с телом, состоящим из нескольких инструкций, в JavaScript

Обратите внимание, даже если используется всего одна инструкция, её можно заключить в фигурные скобки, но это не обязательно:

script Код: Выделить всё Развернуть
if (!num) {
  num = 123;
}

С инструкцией if может использоваться ключевое слово else, которое позволяет добавить инструкцию (или блок кода), выполняемую, если условие имеет ложное значение.
Вторая форма инструкции if:

JavaScript. Синтаксис инструкции if-else в JavaScript
JavaScript. Синтаксис инструкции if-else в JavaScript

В этой форме, если выражение возвращает истинное значение выполняется инструкция, расположенная в блоке if, если результатом вычисления является ложное значение, то выполняется инструкция расположенная в блоке else:

script Код: Выделить всё Развернуть
var num = 15;
 
if (num > 10)
  alert("число " + num + " больше 10");
else
  alert("число " + num + " меньше 10");

Инструкции if/else могут быть вложенными.
Инструкция if является вложенной, если она находится внутри другого блока if или else.
При использовании нескольких инструкций if, else всегда ассоциируется с ближайшим к нему if:

script Код: Выделить всё Развернуть
if(i) {
  if(a) инструкция1;
  if(b) инструкция2;
  else  инструкция3;  // else относится к if(b)
}
else инструкция4;     // else относится к if(i)

Часто на практике бывает необходимо проверить несколько вариантов условий.
Для этого можно применить следующую конструкцию:

script Код: Выделить всё Развернуть
var num = 2;
 
if (num == 1) {
  alert("значение num: " + num);
} else if (num == 2) {
  alert("значение num: " + num);
} else if (num == 3) {
  alert("значение num: " + num);
} else {
  alert("Не знаю такого числа!");
}

В этом коде нет ничего особенного.
Это просто последовательность инструкций, где каждая инструкция if является частью else предыдущей инструкции if/else.
Для новичков такая форма записи на первый взгляд может показаться не совсем понятной, поэтому рассмотрим синтаксически эквивалентную форму, показывающую вложенность инструкций if:

script Код: Выделить всё Развернуть
if (num == 1) {
  alert("значение num: " + num);
}
else {
  if (num == 2) {
   alert("значение num: " + num);
  }
  else {
    if (num == 3) {
      alert("значение num: " + num);
    }
    else {
      alert("Не знаю такого числа!");
    }
  }
}

Условный оператор

Оператор Операция A N Типы значений
?: Выбор второго или третьего операнда R 3 булево, любое, любое→любое

Условный оператор - это единственный тернарный оператор в JavaScript.
Первый операнд предшествует символу ?, второй - между ? и :, третий - после :.

JavaScript. Синтаксис тернарного оператора в JavaScript

Операнды условного оператора могут быть любого типа.
Первый операнд вычисляется и преобразуется (если необходимо) в логическое значение. Он используется в качестве условия - как выражение в круглых скобках инструкции if.
Скобки вокруг проверяемого условия не обязательны, но их довольно часто используют для того, чтобы упростить визуальное восприятие этого оператора.
Если первый операнд возвращает истинное значение, то вычисляется и возвращается значение второго операнда.
Если первый операнд имеет ложное значение, то вычисляется и возвращается значение третьего операнда.
Обратите внимание, что вычисляется всегда только значение какого-то одного операнда - второго или третьего, оба никогда не вычисляются.

script Код: Выделить всё Развернуть
document.write(true ? 5 : 10);

Условный оператор имеет ассоциативность справа налево, поэтому следующие две инструкции эквивалентны:

script Код: Выделить всё Развернуть
q = a?b:c?d:e?f:g;
q = a?b:(c?d:(e?f:g));

Условный оператор часто используется как более краткий вариант инструкции if/else.

script Код: Выделить всё Развернуть
var a, b, num = 2;
 
if (num)
  a = 5;
else
  a = 10;
 
// тоже самое, только с условным оператором
var b = num ? 5 : 10;
 
document.write("a: " + a + "<br>");
document.write("b: " + b);

Вложенные инструкции if/else, так же можно заменить последовательностью из тернарных операторов:

script Код: Выделить всё Развернуть
var i = 5;
 
var x = (i == 3) ? 'значение1' :
(i == 5) ? 'значение2' :
(i > 6) ? 'значение3' :
'значение4';
 
document.write(x);
javascript, тернарные операторы, инструкции, if, else, тернарный, оператор, операнды



Похожие темыКомментарии ПросмотрыПоследнее сообщение
02352Дженнифер Нидерст Роббинс. HTML5, C...
Сообщение от: Admin
078Вывод страницы на печать, версия дл...
Сообщение от: likbezz
21407Re: Закладки пользователя для сайта...
Сообщение от: Admin
0634Колонки одинаковой высоты - лучшее ...
Сообщение от: Admin
0463JavaScript методы alert, document.w...
Сообщение от: Admin