Logical assignment (??=, ||=, &&=)
Присваивает значение, только если переменная пустая, ложная или истинная.
Доступно с: ES2021
Синтаксис
a ??= b / a ||= b / a &&= bПримеры
Задать значение, если его ещё нет:
const settings = { theme: null, size: 0 };
settings.theme ??= 'light';
settings.size ??= 14;
console.log(settings);Результат:
{
"theme": "light",
"size": 0
}Все три оператора:
let a = null;
let b = '';
let c = 'Anna';
a ??= 'set by ??=';
b ||= 'set by ||=';
c &&= c.toUpperCase();
console.log(a, '|', b, '|', c);Результат:
set by ??= | set by ||= | ANNAПримечания
a ??= b — короткая запись a ?? (a = b): присваивание происходит только при необходимости.
См. также
- Nullish coalescing (??) — Возвращает значение справа, если слева null или undefined.
- Logical OR (||) — Логическое ИЛИ: возвращает первое истинное значение.
- Logical AND (&&) — Логическое И: возвращает первое ложное значение или последнее.
В учебнике
- Логические операторы — Логические операторы JavaScript — И, ИЛИ, НЕ, их приоритет, значения по умолчанию через || и оператор ??.