undefined oder null in JavaScript: Wie man eine Variable im Jahr 2025 überprüft

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

„Variable nicht definiert“: Warum quält diese Frage alle?

\n\n

Wenn Sie auch nur einmal in JavaScript programmiert haben, sind Sie definitiv auf diese Situation gestoßen: Sie starten den Code und in der Konsole erscheint eine rote Meldung Uncaught TypeError: Cannot read properties of undefined. Oder noch schlimmer — null is not an object. Kommt Ihnen bekannt vor? Dies ist einer der häufigsten Fehler, der Entwickler aller Erfahrungsstufen verfolgt.

\n\n

Die Frage „How can I determine if a variable is 'undefined' or 'null'?“ auf Stack Overflow hat tausende Aufrufe und hunderte Antworten gesammelt. Und das nicht ohne Grund: In JavaScript sind diese beiden Werte ähnlich, verhalten sich aber unterschiedlich. Im Jahr 2025, wenn Code komplexer und Projekte umfangreicher werden, wird die Fähigkeit, undefined und null korrekt zu überprüfen, von „gut zu wissen“ zu „unbedingt können“.

\n\n

In diesem Artikel analysieren wir alle Überprüfungsmethoden, von einfach bis fortgeschritten, und zeigen, welche Methoden Sie in der modernen Entwicklung verwenden sollten. Los geht's!

\n\n

undefined vs null: Was ist der Unterschied?

\n\n

Bevor wir überprüfen, lassen Sie uns verstehen, womit wir es zu tun haben. In JavaScript sind undefined und null zwei verschiedene primitive Werte, jeder mit seinem eigenen Typ.

\n\n

undefined

\n

undefined ist der Wert, der einer Variable automatisch zugewiesen wird, wenn Sie sie deklariert, aber keinen Wert zugewiesen haben. Eine Funktion gibt ebenfalls undefined zurück, wenn sie keine explizite return-Anweisung enthält.

\n\n
let myVar;\nconsole.log(myVar); // undefined\n\nfunction doNothing() {}\nconsole.log(doNothing()); // undefined\n\nconsole.log(someNonExistentVariable); // ReferenceError, aber wenn auf eine Objekteigenschaft zugegriffen wird:\nconst obj = {};\nconsole.log(obj.prop); // undefined\n
\n\n

null

\n

null ist ein Wert, den der Entwickler absichtlich zuweist. Er bedeutet „leer“, „nichts“, „Wert nicht vorhanden“. null ist aus Sicht von typeof ein Objekt (ja, das ist ein historischer Bug, aber er ist inzwischen ein Feature).

\n\n
let myVar = null;\nconsole.log(myVar); // null\nconsole.log(typeof myVar); // "object" — ja, das stimmt!\n
\n\n

Der Hauptunterschied: undefined bedeutet „noch nicht zugewiesen“, während null „absichtlich leer“ bedeutet. Aber bei einem nicht-strikten Vergleich sind sie gleich:

\n\n
console.log(null == undefined); // true\nconsole.log(null === undefined); // false\n
\n\n

Genau wegen dieser nicht-strikten Gleichheit entsteht Verwirrung. Daher empfehlen die Best Practices des Jahres 2025 die Verwendung des strikten Vergleichs (===).

\n\n

Top-5-Methoden zur Überprüfung von undefined und null

\n\n

Lassen Sie uns alle gängigen Methoden analysieren, von den einfachsten bis zu den modernsten. Wir bewerten jede nach drei Kriterien: Lesbarkeit, Zuverlässigkeit und Leistung.

\n\n

1. Strikter Vergleich (===) — der Goldstandard

\n

Der direkteste und verständlichste Weg ist, die Variable direkt mit undefined oder null über === zu vergleichen.

\n\n
let value = null;\n\n// Prüfung auf null\nif (value === null) {\n    console.log('Das ist null');\n}\n\n// Prüfung auf undefined\nif (value === undefined) {\n    console.log('Das ist undefined');\n}\n\n// Prüfung auf null ODER undefined (einzeln)\nif (value === null || value === undefined) {\n    console.log('Wert nicht vorhanden');\n}\n
\n\n

Warum ist das die beste Praxis?

\n
    \n
  • Maximal lesbar — jeder Entwickler versteht, was Sie prüfen.
  • \n
  • Keine unerwarteten Typumwandlungen.
  • \n
  • Funktioniert in allen JavaScript-Versionen, einschließlich der ältesten.
  • \n
\n\n

Nachteil: Wenn beide Werte gleichzeitig überprüft werden sollen, müssen zwei Bedingungen geschrieben werden. Dies wird jedoch mit dem ||-Operator gelöst, wie im Beispiel oben.

\n\n

2. Nullish Coalescing Operator (??) — eine Neuheit, die sich durchgesetzt hat

\n

Seit ES2020 gibt es in JavaScript den Operator ?? (nu

Blogs

Buchempfehlungen