HoHsi
@HoHsi

Как осуществлять проверку на существование переменной в CoffeeScript?

Доброе утро!
Недавно открыл для себя операторы ||= и ?=.

Сразу же возникли вопросы:
1) В чем их различия, помимо того, что ||= это строковая операция, а ?= выплняется через if

2) Можно ли заменить запись
value = value ? {id: 1}
на
value ||= {id: 1}
или лучше
value ?= {id: 1}
  • Вопрос задан
  • 186 просмотров
Решения вопроса 1
На самом деле, это очень разные проверки.

value ||= {id: 1}
превратится в
value || (value = {
  id: 1
});

а
value ?= {id: 1}
превратится в
if (value == null) {
  value = {
    id: 1
  };
}


Как видите, вторая проверка строже - значение по-умолчанию будет использовано только если value равно undefined или null. В первом случае будет заменено любое falsy значение (false, 0, null, undefined).
Какой из этих вариантов использовать - зависит от вашего приложения. Если 0 или false, например, являются валидными значениями переменной, берите второй вариант, тогда значение не будет перезаписано.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы