Накратко
?? използва резервна стойност само при null или undefined. Нула, false и празен текст могат да останат валидни данни.
Полезно е да знаеш
Операторът ?? връща дясната стойност само ако лявата е null или undefined. В останалите случаи запазва лявата, включително когато тя е 0, false или ''. Това е важно, когато „няма стойност“ се различава от „стойността е нула“. [1]
Например const stock = 0; const shown = stock ?? 10; дава 0. Ако stock е undefined, резултатът е 10. Числото 10 тук е условна стойност по подразбиране, не реална наличност.
Не използвай автоматично резервна стойност за всяко празно поле. При потребителски формуляр празният текст може да означава „не е попълнено“, но за ?? той не е null или undefined. Това правило трябва да се определи отделно.
В каталог безплатен продукт с цена 0 не трябва да се превръща в продукт с цена по подразбиране. Разграничаването на липса от валидна нулева стойност предотвратява подобни тихи грешки в представянето.
Източници
За повече подробности и проверка на информацията: