Логические операторы присваивания объединяют логические операции с присваиванием, сокращая boilerplate в паттернах условного установления значений. Есть три оператора, каждый служит определённой цели.
||=)x ||= defaultValue;
Присваивает defaultValue только если x имеет falsy значение (false, 0, "", null, undefined, NaN).
Используй это, когда хочешь задать fallback для любого falsy значения.
if (!x) x = defaultValue;??=)x ??= defaultValue;
Присваивает defaultValue только если x строго null или undefined.
Используй это, когда 0 или "" — валидные значения, которые не должны перезаписываться.
if (x == null) x = defaultValue;&&=)x &&= newValue;
Присваивает newValue только если x является truthy.
Используй это, когда хочешь обновить значение только если оно уже существует.
if (x) x = newValue;||= — срабатывает на любом falsy значении??= — срабатывает только на null или undefined&&= — срабатывает только когда значение truthyЭти операторы делают намерение сразу понятным, устраняют избыточные ссылки на переменные и снижают риск случайных перезаписей — особенно важно при различении между «не задано» и «намеренно задано как falsy значение».
Оператор ??= присвоит новое значение, если текущее значение равно 0 или пустой строке, потому что обе эти значения считаются falsy.
Новый — ещё не проверен сообществом
Вы