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