Полный цикл в digital

Условные операторы ?: и ??

Условные операторы позволяют проверить некотоое условие и в зависимости от результата проверки выполнить определенные действия. Здесь мы рассмотрим оператор ?: или так называемый тернарный оператор и операцию ??.

Тернарная операция ?:

Тернарная операция состоит из трех операндов и имеет следующее определение:

первый операнд - условие ? второй операнд : третий операнд

В зависимости от условия в первом операнде тернарная операция возвращает второй или третий операнд. Если условие в первом операнде равно true, то возвращается второй операнд, если условие равно false, то третий:

const a = 1;
const b = 2;
const result = a < b ? a : b;
// 1
console.log(result);

Здесь первый операнд представляет следующее условие a < b. Если значение константы a меньше значения константы b, то возвращается второй операнд - a, то есть константа result будет равна a.

Если значение константы a больше или равно значению константы b, то возвращается третий операнд - b, поэтому константа result будет равна значению b.

В качестве операндов также могут выступать выражения:

const a = 1;
const b = 2;
const result = a < b ? a + b : a - b;
// 3
console.log(result);

В этом примере кода первый операнд представляет то же самое условие, что и в предыдущем примере, однако второй и третий операнды представляют арифметические операции. Если значение константы a меньше значения константы b, то возвращается второй операнд - a + b. Соответственно константа result будет равна сумме a и b.

Если значение константы a больше или равно значению константы b, то возвращается третий операнд - a - b. Соответственно константа result будет равна разности a и b.

Оператор ??

Оператор ?? позволяет проверить значение на null и undefined, он принимает два операнда:

левый_операнд ?? правый_операнд

Оператор возвращает значение левого операнда, если оно НЕ равно null и undefined, иначе возвращается значение правого операнда:

const result1 = "hello" ?? "world";
// hello
console.log(result1);   
const result2 = 0 ?? 5;
// 0
console.log(result2);   
const result3 = "" ?? "javascript";
// "" - пустая строка
console.log(result3);   
const result4 = false ?? true;
// false
console.log(result4);   
const result5 = null ?? "not null";
// not null
console.log(result5);   
const result6 = undefined ?? "defined";
// defined
console.log(result6);   
let message = null;

Оператор =??

Оператор ?? имеет модификацию в виде оператора ??=, который также позволяет проверить значение на null и undefined, он принимает два операнда:

левый_операнд ??= правый_операнд

Если левый операнд равен null и undefined, то ему присваивается значение правого операнда. Иначе левый операнд сохраняет свое значение:

let message = "Welcome to JavaScript";
let text = "Hello work!"
text ??= message;
// Hello work!
console.log(text);

Здесь переменная text не равна null или undefined, поэтому она сохраняет свое значение. Обратный пример:

let message = "Welcome to JavaScript";
let text = null;
text ??= message;
// Welcome to JavaScript
console.log(text);

Здесь переменная text равна null, поэтому при посредстве оператора ??= она получает значение переменной message.

Заполните форму уже сегодня!
Для начала сотрудничества необходимо заполнить заявку или заказать обратный звонок. В ответ получите коммерческое предложение, которое будет содержать индивидуальную стратегию с учетом требований и поставленных задач
Работаем по будням с 9:00 до 18:00. Заявки, отправленные в выходные, обрабатываем в первый рабочий день до 12:00.
Спасибо, ваш запрос принят и будет обработан!
Эйч Маркетинг