Оператор JavaScript с двойным вопросительным знаком (??) называется nullish coalescing operator и предоставляет значение по умолчанию, когда переменная или выражение оценивается как null или undefined.
MDN определяет оператор nullish coalescing (??) как «логический оператор, который возвращает свой правый операнд, если его левый операнд равен нулю или не определен, и в противном случае возвращает свой левый операнд».
Это может показаться сложным, но на самом деле все очень просто!
Понимание оператора JavaScript ??
Мы рассмотрим два примера, которые вы ДОЛЖНЫ знать. Затем я оставлю еще несколько примеров, в которых оператор JavaScript ?? используется по желанию.
const favoriteFruit = null;
const result = favoriteFruit ?? 'You did not tell me';
console.log(result); // "You did not tell me"
- Мы начнем с объявления переменной favoriteFruit и сделаем ее null.
- Затем, прочитаем следующую строку следующим образом: IF favoriteFruit is null, THEN the default value is ‘You didn’t tell me’. Значение по умолчанию присваивается переменной result.
- Наконец, мы регистрируем результат и видим: «Ты мне не сказал».
Итак, если значение первой переменной (той, что находится слева от оператора nullish coaleshing, т.е. ??) равно null, используйте значение по умолчанию, т.е. то, что находится справа от оператора ??
Давайте рассмотрим еще один пример, а затем я объясню, почему именно эти два примера.
const favoriteFruit_1 = undefined;
const result = favoriteFruit_1 ?? 'You did not tell me, again!';
console.log(result); // "You did not tell me, again!"
Следуя предыдущему примеру,
- Мы начинаем с объявления переменной favoriteFruit_1, но на этот раз мы делаем ее неопределенной.
- Затем, давайте прочитаем следующую строку следующим образом: IF favoriteFruit_1 is undefined, THEN the default value is ‘You didn’t tell me, again!’. Значение по умолчанию присваивается переменной result.
- Наконец, мы выводим результат в лог и видим: «Ты не сказал мне, снова!».
Итак, если значение первой переменной (той, что находится слева от оператора ??) не определено, используйте значение по умолчанию, то есть то, что находится справа от оператора ??
Почему два примера для объяснения оператора JavaScript ???
Потому что это все, что вам нужно!
На самом деле, вы можете прочитать ЛЮБОЙ оператор JavaScript ?? следующим образом: ЕСЛИ первое значение равно null/не определено, ТО используется значение по умолчанию.
Это то, что вернет оператор коалесценции nullish (??).
Важно помнить, что null и undefined — это единственные два случая, в которых будет использоваться значение по умолчанию!
Неважно, работаете ли вы над своим первым портфельным проектом или начинаете работать с React. Оператор nullish coalescing может пригодиться в любой момент.
Когда бы вы ни использовали оператор nullish coalescing, пустая строка, например, «» или 0, не вызовет значения по умолчанию.
Проверьте другие случаи, используя оператор JavaScript ??.
Заключение
Использование оператора nullish coalescing, или двойного вопросительного знака, довольно просто.
Когда вы видите оператор JavaScript ??, следуйте следующей логике: ЕСЛИ первое значение равно null/не определено, ТО используйте значение по умолчанию.