Der Unterschied zwischen den Operatoren ?? und || in JavaScript
Beide Operatoren liefern den linken Wert zurück, wenn dieser „gültig“ ist. Diese Funktionsweise macht man sich in JavaScript häufig zu Nutze, um Default-Werte zu definieren:
let text = getText() || 'Der Text';
let hext = getHext() ?? 'Der Hext';
Der einzige Unterschied ist die Art der Überprüfung:
||
prüft den linken Ausdruck auf alle falsy Werte, also zB.:0
,''
,false
,undefined
,null
oderNaN
??
prüft den linken Ausdruck nur aufnull
oderundefined
Liefert der linke Ausdruck also kein dementsprechendes Ergebnis, wird der „Fallback“ verwendet.
Je nachdem, was der aktuelle Use Case verlangt, kann man die eine oder die andere Lösung verwenden.
Default-Werte bei Funktionen
Spricht man über Default-Werte in JavaScript, kann man diese auch für Funktionsparameter angeben, das aber seit dem ES6-Update (2015, wird in allen modernen Browsern unterstützt) auch direkt ohne Umweg und als Teil der Standardisierung:
function setText(text = 'Default') {
...
}