HoHsi
@HoHsi

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

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

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

2) Можно ли заменить запись
value = value ? {id: 1}
на
value ||= {id: 1}
или лучше
value ?= {id: 1}
  • Вопрос задан
  • 187 просмотров
Решения вопроса 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, например, являются валидными значениями переменной, берите второй вариант, тогда значение не будет перезаписано.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы