Sobes.tech
Junior

Kannst du die Unterschiede zwischen null und undefined in JavaScript genauer erklären?

sobes.tech KI

Antwort von AI

  • undefined:

    • Wird Variablen zugewiesen, die deklariert, aber nicht mit einem Wert initialisiert wurden.
    • Standardwert für Funktionsparameter, denen keine Argumente übergeben wurden.
    • Wird beim Versuch, auf eine nicht vorhandene Eigenschaft eines Objekts oder Element eines Arrays zuzugreifen, erhalten.
    • Datentyp — undefined.
  • null:

    • Ein spezieller Wert, der explizit einer Variablen zugewiesen wird, um "Fehlen eines Wertes" anzuzeigen.
    • Repräsentiert das absichtliche Fehlen eines Objekts oder primitiven Werts.
    • Datentyp — object (dies ist ein historischer Fehler in JavaScript, aber so ist es).

Die wichtigsten Unterschiede in der Tabelle:

Eigenschaft undefined null
Herkunft Implizit (standardmäßig) Explizit (vom Entwickler zugewiesen)
Zweck Deklariert, aber nicht mit Wert versehen Absichtliches Fehlen eines Wertes
Datentyp (typeof) undefined object
Boolescher Kontext false false
Gleichheit (==) null == undefined (true) null == undefined (true)
Strikte Gleichheit (===) null === undefined (false) null === undefined (false)

Beispiel:

let a; // Deklariert, aber nicht initialisiert -> undefined
console.log(a); // undefined

const obj = {};
console.log(obj.prop); // Zugriff auf nicht vorhandene Eigenschaft -> undefined

function greet(name) {
  console.log(name);
}
greet(); // Parameter name nicht übergeben -> undefined

let b = null; // Explizit auf null gesetzt
console.log(b); // null

let c = {};
c.data = null; // Eigenschaft data auf null gesetzt
console.log(c.data); // null

console.log(typeof a); // undefined
console.log(typeof b); // object
console.log(null == undefined); // true
console.log(null === undefined); // false