
Уяви собі коробку з іменем 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 (тобто взагалі пусто) |