Сокращение JavaScript if без else

В какой-то момент своей карьеры вы обнаружите, что часто используете тернарный оператор в JavaScript.

Это модное слово для сокращенной версии if…else.

Давайте еще раз проверим пример.

// Full if else

let result = '';
if (our_value) {
  result = 'we got a value';
} else {
  result = 'no value';
}

// Ternary
result = our_value ? 'we got a value' : 'no value';
Войти в полноэкранный режим Выйти из полноэкранного режима

Итак, это уже готовый рабочий пример.

If без else

Однако иногда мы можем захотеть выполнить или установить что-то, если выполняется определенное условие.

Давайте рассмотрим следующий пример.

if (our_value) {
  alert('I have the value');
}
Войти в полноэкранный режим Выйти из полноэкранного режима

Этот фрагмент кода должен предупредить пользователя, если условие наше_значение истинно.

Больше ничего не требуется.

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

our_value ? alert('I have the value') : null;
Войти в полноэкранный режим Выйти из полноэкранного режима

Однако нам не нужно значение null, поскольку оно ничего не делает, поэтому мы можем перейти к использованию оператора &&.

our_value && alert('I have the value');
Вход в полноэкранный режим Выйти из полноэкранного режима

Более чистый способ — мы говорим скрипту, что если у нас действительно есть это истинное значение, мы должны предупредить пользователя.

Нулевое значение по умолчанию

В некоторых случаях у вас может быть функция, которая возвращает некоторое значение, но вы можете захотеть вернуть значение по умолчанию, если объект является nullish.

const name = null;
const user = {
  username: name ? name : 'John Doe',
};

console.log(user);
// { username: 'John Doe' }
Вход в полноэкранный режим Выход из полноэкранного режима

Этот пример отлично работает. Однако он снова немного дублируется. Мы можем использовать оператор ?? для установки возвращаемого значения по умолчанию.

Этот оператор ?? называется логическим оператором nullish.

const user = {
  username: name ?? 'John Doe',
};
Вход в полноэкранный режим Выйти из полноэкранного режима

Это либо вернет значение name, а если такого значения не существует, то вернет John Doe.

Примечание: Будьте осторожны, если значение может быть false, так как в этом случае будет возвращено false.

Спасибо, что прочитали, и давайте общаться!

Спасибо, что читаете мой блог. Не стесняйтесь подписаться на мою рассылку по электронной почте и подключайтесь к Facebook или Twitter.

Оцените статью
devanswers.ru
Добавить комментарий