“Оператор об’єднання з null” або “nullish coalescing operator” ??

Оператор ??, відомий як “оператор об’єднання з 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