Оператор ??=
в JavaScript называется оператором объединения с null
(nullish coalescing operator). Он используется для присваивания значения переменной только в том случае, если ее текущее значение равно null
или undefined
.
В общем виде, оператор ??=
выполняет следующее действие: если переменная была undefined
или null
, то присваивает ей указанное значение. В противном случае, если переменная уже имеет определенное значение, ничего не изменяется.
let a;
let b = 0;
// assign a value only if current value is null or undefined
a ??= 'default'; // a is now 'default'
b ??= 5; // b is still 0
Переменная a
объявлена, но не получила значения, поэтому ее текущее значение равно null
или undefined
. Затем используется оператор ??=
, который проверяет, равно ли текущее значение переменной a null
или undefined
. Если это так, то переменной a присваивается значение 'default'
. В результате, после выполнения операции a ??=
'default'
, значение переменной a становится равным 'default'
.
Переменная b
уже имеет значение, равное 0
. Затем используется оператор ??=
, который проверяет, равно ли текущее значение переменной b
null
или undefined
. В этом случае условие не выполняется, так как значение b
не является null
или undefined
. Следовательно, переменная b
остается с прежним значением 0
.