undefined in JavaScript: 5 Prüfmethoden (und welche man wählen sollte)

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

„Uncaught ReferenceError“ – Ihr erster Feind? Richtig auf undefined in JavaScript prüfen lernen

\n\n

Jeder, der auch nur ein paar Zeilen JavaScript geschrieben hat, ist auf das rätselhafte undefined gestoßen. Es ist nicht nur ein „leerer Platz“ – es ist ein vollwertiger Datentyp mit einem eigenen Wert. Aber wie fängt man ihn richtig ein? Wenn Sie „How can I check for undefined in JavaScript“ gegoogelt haben, sind Sie nicht allein: Diese Frage auf Stack Overflow hat Hunderttausende von Aufrufen gesammelt. Das Problem ist, dass es in JS mehrere Prüfmethoden gibt und jede ihre Tücken hat.

\n\n

In diesem Artikel analysieren wir 5 Ansätze, vom Einfachen zum Komplexen, vergleichen ihre Leistung und Zuverlässigkeit und finden heraus, welche Methode man im Jahr 2025 verwenden sollte. Los geht‘s!

\n\n

Was ist undefined eigentlich?

\n\n

Bevor wir prüfen, lassen Sie uns die Begriffe klären. undefined ist ein primitiver Wert, der einer Variablen zugewiesen wird, wenn sie deklariert, aber nicht initialisiert wurde:

\n\n
let a;\nconsole.log(a); // undefined\n
\n\n

Wichtig: undefined ≠ null ≠ not defined. null ist ein absichtliches „Nichts“, und not defined (ReferenceError) tritt auf, wenn die Variable überhaupt nicht deklariert wurde. Diese Nuancen sind entscheidend für die Wahl der richtigen Prüfung.

\n\n

Methode Nr. 1: Der typeof-Operator – der Goldstandard?

\n\n

Die beliebteste und sicherste Methode ist die Verwendung von typeof:

\n\n
if (typeof x === 'undefined') {\n  console.log('x ist nicht definiert');\n}\n
\n\n

Warum funktioniert das sogar für nicht deklarierte Variablen? typeof wirft niemals einen ReferenceError. Wenn die Variable nicht existiert, gibt es einfach den String "undefined" zurück.

\n\n

Vorteile:

\n
    \n
  • Sicher für nicht deklarierte Variablen
  • \n
  • Lesbarer und verständlicher Code
  • \n
  • Funktioniert in allen Browsern und Umgebungen (Node.js, Deno)
  • \n
\n\n

Nachteile:

\n
    \n
  • Etwas lang für häufige Verwendung
  • \n
  • Kann Anfänger in die Irre führen (String-Vergleich)
  • \n
\n\n

Fazit: Beste Wahl für globale Prüfungen und Fälle, in denen die Variable möglicherweise nicht deklariert ist.

\n\n

Methode Nr. 2: Strikter Vergleich mit undefined (===)

\n\n

Die zweitbeliebteste Methode ist der direkte Vergleich des Werts:

\n\n
if (x === undefined) {\n  console.log('x ist gleich undefined');\n}\n
\n\n

Hier gibt es eine Nuance: Die Variable muss deklariert sein. Wenn x nicht existiert, erhalten Sie einen ReferenceError. Daher ist dieser Code nur sicher für:

\n
    \n
  • Eigenschaften von Objekten (obj.prop === undefined)
  • \n
  • Parameter von Funktionen
  • \n
  • Variablen, die mit let, const oder var deklariert wurden
  • \n
\n\n

Fallstrick: Globales undefined

\n

In alten Browsern (IE 8 und niedriger) konnte undefined überschrieben werden:

\n
undefined = 'jetzt bin ich ein String'; // Albtraum!\n
\n

Das ist heute nicht mehr möglich (im strikten Modus), aber wenn Sie Legacy-Code unterstützen – verwenden Sie besser typeof.

\n\n

Fazit: Hervorragende Methode für lokale Variablen und Objekteigenschaften. Schnell und prägnant.

\n\n

Methode Nr. 3: Der void-Operator

\n\n

Eine wenig bekannte, aber elegante Methode ist void 0:

\n\n
if (x === void 0) {\n  console.log('x undefined');\n}\n
\n\n

Der void-Operator wertet einen Ausdruck aus und gibt undefined zurück. void 0 ist der kürzeste Weg, um ein reines undefined zu erhalten, das nicht von der globalen Variable abhängt.

\n\n

Wann ist das nützlich?

\n
    \n
  • In minimiertem Code (spart Bytes)
  • \n
  • In Bibliotheken, bei denen der Schutz vor Überschreibung von undefined wichtig ist
  • \n
  • In der funktionalen Programmierung (z. B. in Promise-Ketten)
  • \n
\n\n

Nachteil: Sieht seltsam aus

Blogs

Buchempfehlungen