JavaScript null vs. undefined: Was ist der Unterschied?
17. August 2026
Verstehe den Unterschied zwischen null und undefined in JavaScript. Erfahre, wann du welche verwendest und wie du sie im Jahr 2026 richtig prüfst.
Einführung in null und undefined
In JavaScript repräsentieren null und undefined beide leere Werte, aber sie bedeuten unterschiedliche Dinge. Undefined ist der Standardwert einer Variable, die deklariert, aber nicht zugewiesen wurde. Null ist eine absichtliche Zuweisung, um „kein Wert" oder „nichts" anzuzeigen. Stell dir undefined als JavaScripts Art zu sagen „Ich habe das noch nicht gesetzt" vor, während null bedeutet, dass du sagst „Ich leere das absichtlich". Dieser Unterschied ist wichtig beim Debugging, API-Design und bei der Verarbeitung von Benutzereingaben in britischen Webprojekten.
Wesentliche Unterschiede zwischen null und undefined
Der offensichtlichste Unterschied ist der Typ: `typeof null` gibt `'object'` zurück (ein seit Langem bekannter Bug), während `typeof undefined` `'undefined'` zurückgibt. `undefined` erscheint beim Zugriff auf nicht initialisierte Variablen, fehlende Array-Elemente oder nicht existierende Objekteigenschaften. `null` muss explizit zugewiesen werden. In der Praxis deutet `undefined` in der Regel auf ein versehentliches Fehlen hin, während `null` auf ein bewusstes Fehlen hinweist. Beispielsweise könnte eine britische E-Commerce-Website `null` für den optionalen zweiten Vornamen eines Kunden verwenden und sich auf `undefined` verlassen, um fehlende Pflichtfelder zu erkennen.
So prüfen Sie auf null und undefined
Verwende strikte Gleichheit (===), um zwischen null und undefined zu unterscheiden: value === null oder value === undefined. Wenn du nur wissen musst, ob ein Wert falsy ist (wie beim Validieren von Formulareingaben), kannst du if (!value) verwenden. Achte jedoch auf 0 und leere Zeichenketten, die ebenfalls falsy sind. Für zuverlässige Prüfungen in modernem JavaScript erwäge Object.is(value, null) oder Object.is(value, undefined) für exakte Übereinstimmungen. Viele Entwickler in Großbritannien verwenden optionale Verkettung (?.) und Nullish-Koaleszenz (??), um beides elegant zu behandeln.
Praktische Beispiele in der UK-Webentwicklung
Stell dir vor, du entwickelst ein Benutzerprofil-Formular für einen Dienst in Großbritannien. Ein Benutzer könnte das Feld „County" leer lassen; du könntest es auf `null` setzen, um „nicht angegeben" zu kennzeichnen. Wenn ein Feld jedoch gar nicht in den Formulardaten enthalten ist, wird es zu `undefined`. Bei der Verarbeitung einer API-Antwort solltest du immer auf `undefined` prüfen, bevor du davon ausgehst, dass eine Eigenschaft existiert. Zum Beispiel bedeutet `const postcode = data.postcode ?? 'N/A';`, dass bei `null` oder `undefined` auf „N/A" zurückgegriffen wird. Das vermeidet lästige Fehler wie „Cannot read properties of undefined".
Häufige Fehler und bewährte Methoden
Vermeide die Verwendung von loser Gleichheit (`==`), denn `null == undefined` ist true, obwohl sie nicht dasselbe sind. Das verbirgt oft Fehler. Best Practice ist es, `null` explizit zuzuweisen, wenn du einen Wert löschen möchtest, und `undefined` natürlich entstehen zu lassen. Bei der Definition von Funktionen solltest du Standardparameter in Betracht ziehen: `function greet(name = 'Guest')` behandelt `undefined`, aber nicht `null`. Für Robustheit standardisieren viele UK-Teams darauf, `null` für „beabsichtigte Abwesenheit“ zu verwenden und `undefined` für Zustände auf Systemebene zu reservieren. Dokumentiere deine Konventionen, um deine Codebasis konsistent zu halten.
FAQ
Lockere Gleichheit (==) behandelt sie als gleich, strikte Gleichheit (===) jedoch nicht. Daher ist null == undefined true, aber null === undefined false. Das liegt daran, dass sie unterschiedliche Typen sind und unterschiedliche Bedeutungen haben. Verwende immer strikte Gleichheit, um sie auseinanderzuhalten.