Gibts nicht geht nicht: Wenn Werte oder Eigenschaften nicht existieren
Die speziellen Werte null und undefined kennzeichnen die Abwesenheit sinnvoller Werte. Sie sind zwar selber Werte, aber sie enthalten keine Informationen. Sie werden eingesetzt, wenn Operationen keinen Wert liefern könnten, aber einen Wert haben müssen.
Beides wird eingesetzt, um auf fehlende Werte zu reagieren, aber ihr Verhalten weist feine Unterschiede auf: null wird eher bewusst zugewiesen, undefined von JavaScript erzeugt. In booleschen Ausdrücken gelten null und undefined als falsy.
undefined: existiert, aber hat keinen sinnvollen Wert
let foo; console.log ("foo", foo);
JavaScript weist einer Variable, die mit let ohne Wertzuweisung definiert ist, den Wert undefined zu. Das Skript wirft keine Fehlermeldung aus.
[Log] foo – undefined
Ihre Benutzung führt nicht zu Laufzeitfehlern, aber zu unbrauchbaren Ergebnissen. Hingegen führt die Benutzung einer Variablen, die nicht deklariert wurde, zu einem Laufzeitfehler:
console.log (bar);
[Error] ReferenceError: Can't find variable: bar
null – mit Absicht gesetzt
null wird einer Variablen absichtlich zugewiesen, um aufzuzeigen, dass die Variable keine Informationen enthält oder ein Objekt leer ist oder nicht initialisiert. Dieses Vorgehen stellt sicher, dass ein Element existiert, wenn Aktionen auf dem Element anstehen.
const elem = document.querySelector('.selector') && null; if (elem) { console.log ("Hier gibts was zu holen"); } else { console.log ("Nichts in Sicht"); }
Der &&-Operator gibt den ersten falsy-Wert oder den letzten Wert zurück. Auf diese Weise wird der Eigenschaft also der Wert null zugewiesen, wenn das Element nicht existiert.