Объяснение очень простое, давайте предположим, что у нас следующая ситуация, мы хотим получить значение, если оно существует в объекте, или использовать другое значение, если оно не определено или равно нулю
const obj = { a: 0 };
const a = obj.a || 10; // gives us 10
// if we will use ?? operator situation will be different
const obj = { a: 0 };
const a = obj.a ?? 10; // gives us 0
// you can achieve this using this way
const obj = { a: 0 };
const a = obj.a === undefined ? 10 : obj.a; // gives us 0
// it also work in case of null
const obj = { a: 0, b: null };
const b = obj.b ?? 10; // gives us 10
В основном этот оператор делает следующее:
// I assume that we have value and different_value variables
const a = (value === null || value === undefined) ? different_value : value;
Более подробную информацию об этом вы можете найти в MDN веб-документах