2.1 Variablen sind Referenzen
In JavaScript sind Variablen Referenzen auf Objekte und nicht die Variablen selbst. Das bedeutet, wenn du eine Variable in JavaScript erstellst, erzeugst du einfach eine Referenz auf ein Objekt im Speicher.
Diese Eigenschaft der Sprache hat wichtige Konsequenzen für den Umgang mit Variablen, insbesondere bei der Übergabe von Objekten an Funktionen oder ihrer Zuweisung zu anderen Variablen.
Wenn du eine Variable erstellst und ihr einen Wert zuweist, weist JavaScript dem Wert ein Objekt im Speicher zu und macht die Variable zu einer Referenz auf dieses Objekt. Wenn du eine Variable einer anderen zuweist, wird die neue Variable auf dasselbe Objekt verweisen wie die ursprüngliche Variable. Das bedeutet, dass Änderungen, die über eine Variable vorgenommen werden, sich auch auf die andere auswirken, wenn das Objekt veränderbar ist.
Beispiel:
let a = [1, 2, 3];
let b = a;
b.push(4);
console.log(a); // Ausgabe: [1, 2, 3, 4]
Wir haben die Zahl 4 zur Variable b hinzugefügt, aber sie wurde auch zur Liste in der Variable a hinzugefügt, da beide Variablen tatsächlich nur Referenzen auf das Listenobjekt [1, 2, 3] sind.
2.2 Typ undefined
In JavaScript gibt es zwei spezielle Datentypen: null und undefined. Diese Typen werfen oft Fragen bei Entwicklern auf wegen ihrer Ähnlichkeit, aber sie haben unterschiedliche Zwecke und werden in verschiedenen Situationen verwendet. Sehen wir sie uns genauer an.
Typ undefined
Der Typ undefined repräsentiert den Wert einer Variablen, die deklariert, aber nicht initialisiert wurde. Dieser Wert wird auch zurückgegeben, wenn auf eine nicht vorhandene Eigenschaft eines Objekts oder ein nicht existierendes Array-Element zugegriffen wird.
Beispiele
1. Nicht initialisierte Variable:
let x;
console.log(x); // undefined
2. Nicht vorhandene Objekteigenschaft:
let obj = {};
console.log(obj.property); // undefined
3. Nicht vorhandenes Array-Element:
let array = [1, 2, 3];
console.log(array[5]); // undefined
4. Fehlendes Funktionsargument:
function myFunction(a, b) {
console.log(b); // undefined, falls als myFunction(1) aufgerufen
}
myFunction(1);
Eigenschaften von undefined:
undefinedist ein Datentyp und ein Werttypeof undefinedgibtundefinedzurück
2.3 Typ null
Der Typ null repräsentiert das absichtliche Fehlen eines Wertes. Dieser Wert wird oft verwendet, um Variablen zu initialisieren, die später einem Objekt zugewiesen werden, oder um den Wert einer Variablen zu löschen.
Beispiele
1. Initialisierung einer Variablen:
let obj = null;
console.log(obj); // null
2. Löschen eines Variablenwerts:
let user = { name: "Alice" };
user = null; // user verweist jetzt nicht mehr auf ein Objekt
Eigenschaften von null:
nullist ein Wert, der das absichtliche Fehlen eines Wertes darstellttypeof nullgibtobjectzurück, was ein anerkannter Fehler in der JavaScript-Sprache ist (tatsächlich istnullkein Objekt)
2.4 Vergleich von null und undefined
Obwohl null und undefined zur Darstellung des Fehlens eines Wertes verwendet werden können, unterscheiden sie sich in Zweck und Kontext der Verwendung.
| Eigenschaft | null | undefined |
|---|---|---|
| Typ | Primitiver Typ | Primitiver Typ |
| Zweck | Absichtliches Fehlen eines Wertes | Nicht initialisierte Variable |
| Verwendung | Initialisierung von Variablen, Löschung von Werten | Nicht vorhandene Eigenschaften, Array-Elemente |
| Standardwert | Nein | Ja (für nicht initialisierte Variablen, Funktionsparameter) |
Beispiele für die Verwendung
1. Initialisierung einer Variablen mit einem Objekt oder Array:
let myObject = null;
let myArray = null;
2. Überprüfung von Werten:
let value;
if (value === undefined) {
console.log("Die Variable ist nicht initialisiert.");
}
let result = null;
if (result === null) {
console.log("Fehlen eines Wertes.");
}
3. Löschen von Werten:
let person = { name: "Alice" };
person = null; // Jetzt verweist person nicht mehr auf ein Objekt
4. Überprüfung auf das Vorhandensein einer Eigenschaft:
let obj = {};
if (obj.property === undefined) {
console.log("Die Eigenschaft existiert nicht.");
}
Das Verständnis der Unterschiede zwischen null und undefined in JavaScript ist wichtig, um Werte richtig zu verwalten und Fehler im Code zu vermeiden.
undefined weist normalerweise auf nicht initialisierte Variablen oder fehlende Eigenschaften hin, während null zur expliziten Angabe des Fehlens eines Wertes verwendet wird.
Der richtige Umgang mit diesen speziellen Datentypen macht den Code verständlicher und vorhersehbarer.
GO TO FULL VERSION