
Уяви собі коробку з іменем x
. І є ще інша річ y
, яку ми, можливо, хочемо покласти в цю коробку.
Залежно від того, що вже є в коробці, ми або кладемо y
, або нічого не змінюємо.
x &&= y
“Кладемо y
, тільки якщо в коробці вже щось є.”
- Якщо коробка не пуста → кладемо
y
. - Якщо пуста → нічого не робимо.
Приклад:
jsCopyEditlet x = "цукерка";
x &&= "яблуко"; // коробка не пуста → кладемо яблуко
console.log(x); // "яблуко"
x ||= y
“Кладемо y
, якщо в коробці нічого немає або там нісенітниця.”
- Якщо пусто, або там щось типу
0
,false
,""
→ кладемоy
. - Якщо вже щось є → залишаємо як є.
Приклад:
jsCopyEditlet x = "";
x ||= "печиво"; // пусто → кладемо печиво
console.log(x); // "печиво"
x ??= y
“Кладемо y
, якщо коробка ВЗАГАЛІ не створена або має null
.”
- Якщо
x === null
абоx === undefined
→ кладемоy
. - Якщо навіть
x = 0
або""
→ нічого не змінюємо.
🧸 Приклад:
jsCopyEditlet x = null;
x ??= "іграшка"; // null → кладемо іграшку
console.log(x); // "іграшка"
🧠 Просте порівняння
Оператор | Коли кладе нове значення? | Як запам’ятати |
---|---|---|
&&= | Якщо вже є щось хороше | “є — замінюємо” |
` | =` | |
??= | Якщо null або undefined (тобто взагалі пусто) |