Encodera

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.

Справочник JavaScript

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 — И, ИЛИ, НЕ, их приоритет, значения по умолчанию через || и оператор ??.

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.