Оператор ??
, відомий як “оператор об’єднання з null” або “nullish coalescing operator,” це відносно новий оператор в JavaScript, який дозволяє встановити значення за замовчуванням в тому випадку, коли значення змінної є null
або undefined
. Цей оператор дуже корисний для роботи зі змінними, які можуть мати нульове, null
або undefined
значення, і ви хочете надати їм альтернативне значення за замовчуванням.
Синтаксис оператора ??
виглядає так:
const result = value ?? defaultValue;
value
– це змінна, значення якої ви перевіряєте.
defaultValue
– це значення, яке встановлюється за замовчуванням, якщоvalue
дорівнюєnull
абоundefined
.
Оператор ??
враховує тільки строго визначені значення null
або undefined
. Інші “неправдиві” значення, такі як 0
, false
, пустий рядок тощо, не рахуються null
або undefined
і не спричиняють встановлення значення за замовчуванням.
Ми вже розглядали цей оператор раніше. Але особливо корисним він є при роботі з об’єктами.
Ось кілька прикладів використання оператора ??
:
Приклад 1: Встановлення значення за замовчуванням
const user = {
email: 'useremailrandom@emal.com',
gender: null
};
const userEmail = user.email ?? 'default@email.com';
const userName = user.name ?? 'Гість';
const userGender = user.gender ?? 'Невідомо';
console.log(userEmail); // "useremailrandom@emal.com"
console.log(userName); // "Гість"
console.log(userGender); // "Невідомо"
Використання з “умовно неправдивими” значеннями, які не є null або undefinedПомилка
const user = {
email: 'useremailrandom@emal.com',
isMarried: false,
visitsCount: 0
};
const isUserMarried = user.isMarried ?? 'Невідомо';
const userVisitsCount = user.visitsCount ?? 'Невідомо';
console.log(isUserMarried); // false
console.log(userVisitsCount); // 0