Lädt...

null und undefined

Sie kennen Booleans — klares Ja oder Nein. Programme müssen oft auch sagen: „hier gibt es keinen Wert.“ JavaScript kennt zwei übliche Leerwerte: undefined und null. Sie wirken ähnlich, erzählen aber unterschiedliche Geschichten. Hier trennen wir sie, damit spätere Umwandlungen und Prüfungen verständlich bleiben.

Was ist der Unterschied zwischen null und undefined?

undefined heißt meist „noch nichts zugewiesen“ — eine Variable mit let ohne Wert, oder etwas Fehlendes. null heißt „absichtlich leer“: Sie (oder eine API) setzen null, um einen Platz zu leeren. Prüfen Sie mit typeof: typeof undefined ergibt "undefined", aber typeof null ist der bekannte Quirk "object". Vergleichen Sie lieber mit ===. Beide sind falsy, aber keine Booleans (true / false).

Werkzeugkasten für Leerwerte

📊 null vs. undefined für Einsteiger

Idee Beispiel Ergebnis / Hinweis
Fehlend / nicht zugewiesen let x; dann x undefined
Absichtlich leer let box = null Sie wählen leer
typeof fehlend typeof undefined "undefined"
typeof leer typeof null "object" (Quirk — bedeutet trotzdem leer)
Strenger Vergleich box === null true, wenn box null hält
Lockerer Vergleich null == undefined true mit == — für Klarheit === bevorzugen

undefined — noch kein Wert

Deklarieren Sie einen Namen mit let und weisen nichts zu. Der Wert ist undefined. Loggen Sie Wert und typeof, damit das Label "undefined" sitzt.

undefined als Standard

javascript
let nickname;
console.log(nickname);
console.log(typeof nickname);

null — absichtlich leer

Setzen Sie null, wenn Sie klar „kein Wert“ signalisieren wollen. Das ist etwas anderes als Vergessen der Zuweisung.

null absichtlich setzen

javascript
let selected = null;
console.log(selected);
console.log(typeof selected);

typeof nebeneinander

Legen Sie beide Ergebnisse nebeneinander. Merken Sie: typeof null mit "object" ist ein Quirk — noch keine volle Objekt-Lektion.

typeof für undefined und null

javascript
console.log(typeof undefined);
console.log(typeof null);
let a;
let b = null;
console.log(typeof a);
console.log(typeof b);

Bevorzugen Sie === für null und undefined

=== prüft Wert und Typ. Nutzen Sie es für „genau null“ oder „genau undefined“. Mit == können null und undefined zueinander passen — leicht missverständlich beim Lernen.

strenge Checks mit ===

javascript
let user = null;
let title;
console.log(user === null);
console.log(title === undefined);
console.log(user === undefined);

Lockeres == kann beide vermischen

Mit == passen null und undefined zueinander. Loggen Sie es einmal — echte Checks danach mit ===.

lockeres == zwischen null und undefined

javascript
console.log(null == undefined);
console.log(null === undefined);

Die erste Zeile ist true, weil == locker ist. Die zweite ist false. Schreiben Sie echte Checks mit ===, damit die Absicht klar bleibt.

Beide Leerwerte auf der Seite zeigen

Speichern Sie einen undefined-artigen Namen und einen mit null, dann kurze Labels mit textContent.

Seitenlabels für null und undefined

html
<!DOCTYPE html>
<html>
<head>
<title>null and undefined — labels</title>
</head>
<body>
<p id="out">…</p>
<script>
let title;
let avatar = null;
document.getElementById("out").textContent =
"title=" + title + " | avatar=" + avatar;
</script>
</body>
</html>

Der Absatz zeigt beide Leerwerte in einer Zeile. Ändern Sie nur avatar in einen kurzen String, aktualisieren Sie, und prüfen Sie: die rechte Hälfte ändert sich, title bleibt undefined.

Selbst ausprobieren

  1. Deklarieren Sie let city; — loggen Sie city und typeof city ohne Zuweisung.
  2. Setzen Sie let bag = null; — loggen Sie Wert und typeof bag (erwarten Sie den "object"-Quirk).
  3. Loggen Sie typeof undefined und typeof null nebeneinander.
  4. Vergleichen Sie mit ===: eine null-Variable gegen null und gegen undefined.
  5. Loggen Sie einmal null == undefined, schreiben Sie echte Checks dann mit ===.
  6. Im HTML-Demo setzen Sie avatar auf "pic.png", aktualisieren und lesen die neue Zeile.

Typische Fehler

  • null und undefined immer gleichsetzen — die Bedeutung unterscheidet sich (absichtlich vs. nicht zugewiesen)
  • Panik bei typeof null → "object" — Quirk; null bleibt absichtlich leer
  • Blind auf == zwischen beiden setzen, ohne den lockeren Match zu sehen
  • Beide als Boolean bezeichnen — sie sind Leerwerte; Booleans sind nur true / false
  • Leeren String "" mit null verwechseln — "" ist weiterhin ein String

Kurzfassung

  • undefined: fehlend / noch nicht zugewiesen; typeof → "undefined"
  • null: absichtlich leer, von Ihnen gesetzt; typeof → "object" (Quirk)
  • Bevorzugen Sie === für klare Checks; beide sind falsy, aber keine Booleans
  • Leerer String "" ist Text — nicht dasselbe wie null oder undefined
  • Als Nächstes: Typumwandlung — Werte bewusst von einer Art in eine andere bringen

🧠 Testen Sie Ihr Wissen

Bereit zum Start

Testen Sie Ihr Wissen

Fordern Sie sich mit diesem interaktiven Quiz heraus und sehen Sie, wie gut Sie das Thema verstehen

❓
8
Fragen
🎯
70%
Zum Bestehen
♾️
∞
Zeit
🔄
∞
Versuche

📝 Anweisungen

  • Lesen Sie jede Frage sorgfältig
  • Wählen Sie die beste Antwort für jede Frage
  • Sie können das Quiz so oft wiederholen, wie Sie möchten
  • Ihr Fortschritt wird oben angezeigt