ЖабаСкрипт. Конспект 5

Условная конструкция

Оператор if

Инструкция if(...) вычисляет условие в скобках и, если результат true, то выполняет блок кода в фигурных скобках {…}.

if (10 > 1) 
{
  alert('Правда');
}
if (10 < 1) 
{
  alert('Ложь');
}
if (10 == 10) 
{
  alert('Правда');
}

Блок else

Инструкция if может содержать необязательный блок «else» («иначе»). Он выполняется, когда условие ложно.

if (10 > 1) 
{
  alert('Правда');
}
else 
{
  alert('Ложь');
}

Несколько условий: «else if»

Если нужно проверить несколько вариантов условия, то для этого используется блок else if.

if (10 > 1) 
{
  alert('10 > 1');
}
else if (10 < 1) 
{
  alert('10 < 1');
}
else if (10 == 1) 
{
  alert('10 == 1');
}
// Выведет 10 > 1

Тернарный оператор

Тернарный оператор имеет следующий синтаксис

let result = условие ? значение1 : значение2;

Сначала вычисляется условие: если оно истинно, тогда возвращается значение1, в противном случае – значение2.

let accessAllowed = (age > 18) ? true : false;

Логические операторы

В JavaScript есть четыре логических оператора: || (ИЛИ), && (И) и ! (НЕ), ?? (Оператор нулевого слияния).

|| (ИЛИ)

alert( true || true );   // true
alert( false || true );  // true
alert( true || false );  // true
alert( false || false ); // false

Использование ||

**1. Получение первого истинного значения из списка переменных или выражений. **Цепочка ИЛИ || возвращает первое истинное значение или последнее, если такое значение не найдено.

let currentUser = null;
let defaultUser = "John";
let name = currentUser || defaultUser || "unnamed";

alert( name ); // выбирается "John" – первое истинное значение

2. Сокращённое вычисление.

ИЛИ || вычисляет их слева направо. Вычисление останавливается при достижении первого истинного значения. Этот процесс называется «сокращённым вычислением», поскольку второй операнд вычисляется только в том случае, если первого недостаточно для вычисления всего выражения.

let x;
true || (x = 1);
alert(x); // undefined, потому что (x = 1) не вычисляется
false || (x = 1);
alert(x); // 1

&& (И)

alert( true && true );   // true
alert( false && true );  // false
alert( true && false );  // false
alert( false && false ); // false

И «&&» находит первое ложное значение

! (НЕ)

alert( !true ); // false
alert( !0 ); // true

Двойное НЕ !! используют для преобразования значений к логическому типу. Равносильно функции Boolean(value):

alert( !!"non-empty string" ); // true
alert( !!null ); // false
alert( Boolean("non-empty string") ); // true
alert( Boolean(null) ); // false

?? (Оператор нулевого слияния)

Будем считать, что выражение определено, если оно не равно null или undefined.

Результат выражения a ?? b будет следующим:

  • если a определено, то a,

  • если a не определено, то b.

Оператор ?? может быть записано следующим образом:

result = (a !== null && a !== undefined) ? a : b;

Как правило, оператор ?? нужен для того, чтобы задать значение по умолчанию для потенциально неопределённой переменной.

Ссылки:

https://learn.javascript.ru/ifelse

https://learn.javascript.ru/logical-operators

https://learn.javascript.ru/nullish-coalescing-operator