268 Kapitel 7
undefined
Vorsicht, Sie könnten undefined begegnen,
wenn Sie es nicht erwarten
Wie Sie sehen, läuft Ihnen undefined immer dann über den Weg, wenn Sie eine
nicht initialisierte Variable, eine nicht existierende (oder gelöschte) Eigenschaft oder
ein nicht vorhandenes Array-Element benutzen wollen.
Aber was zum Henker ist das? Gar nicht so schwer – stellen Sie sich undefined
als den Wert vor, der den Dingen zugewiesen wird, die noch keinen eigenen Wert
haben (also noch nicht initialisiert sind).
Und wofür ist das gut? Mit undefined können Sie überprüfen, ob eine Variable
(oder eine Eigenschaft oder ein Array-Element) schon einen Wert besitzt. Hier ein
paar Beispiele. Wir beginnen mit nicht initialisierten Variablen:
Sie können testen, ob eine Variable wie
x den Wert undefined hat. Hierfür
reicht ein Boolescher Vergleich.
var x;
if (x == undefined) {
// x ist noch nicht initialisiert. Pech gehabt!
}
var customer = {
name: "Jenny"
};
if (customer.phoneNumber == undefined) {
// Kundentelefonnummer auslesen
}
Oder wie wäre es mit einer Objekteigenschaft?
Auch Eigenschaften können Sie
durch einen Vergleich mit dem Wert
undefined überprüfen.
Achtung, wir benutzen hier
den Wert undefined, nicht den
String » undefined«!
F:
Wann muss ich überprüfen, ob eine Variable (eine
Eigenschaft/ein Array-Element) undefined ist?
A: Das hängt davon ab, wie Sie Ihren Code gestalten. Haben
Sie so programmiert, dass eine Eigenschaft oder Variable beim
Ausführen eines Codeblocks vielleicht noch keinen Wert hat,
bietet der Test auf undefined eine Möglichkeit, mit der Situation
umzugehen, anstatt mit möglichen undefinierten Werten zu arbeiten.
F:
Wenn undefined ein Wert ist, hat er dann auch einen Typ?
A: Ja. Der Typ von undefined ist undefined. Warum? Unsere
Logik funktioniert so (halten Sie durch!): Es ist kein Objekt, keine
Zahl, kein String, kein Boolescher Wert oder sonst irgendetwas
Definiertes. Warum sollte der Typ also nicht auch undefined sein?
Das ist eine dieser seltsamen Grenzbereiche von JavaScript, die Sie
einfach akzeptieren müssen.
Es gibt keine
Dummen Fragen
Sie sind hier 269
Typen, Gleichheit, Umwandlung und der ganze Rest
IM LABOR
Im Labor nehmen wir gern Dinge auseinander, sehen unter die Motor-
haube, stochern in den Dingen herum und klemmen unsere Diagnosege-
räte an, um herauszunden, was wirklich passiert. Heute untersuchen wir
das Typensystem von JavaScript. Hierfür haben wir ein kleines Diagno-
sewerkzeug namens typeof gefunden, mit dem wir Variablen überprüfen
können. Ziehen Sie sich Ihren Laborkittel an und machen Sie mit.
Der Operator typeof ist Teil von JavaScript. Sie können ihn benutzen, um
den Datentyp seines Operanden (das Ding, das Sie untersuchen wollen)
zu ermitteln. Hier ein Beispiel:
var subject = "Nur ein String";
var probe = typeof subject;
console.log(probe);
JavaScript-Konsole
string
Der typeof-Operator übernimmt
einen Operanden und gibt dessen
Datentyp zurück.
Hier lautet der Datentyp »string«.
Die möglichen Rückgabewerte
von typeof sind Strings, die den
Typ wiedergeben, wie »string«,
»boolean«, »number«, »objec
oder »undefined«.
Jetzt sind Sie dran. Sammeln Sie die Daten für die folgenden Experimente.
var test1 = "abcdef";
var test2 = 123;
var test3 = true;
var test4 = {};
var test5 = [];
var test6;
var test7 = {"abcdef": 123};
var test8 = ["abcdef", 123];
function test9(){return "abcdef"};
console.log(typeof test1);
console.log(typeof test2);
console.log(typeof test3);
console.log(typeof test4);
console.log(typeof test5);
console.log(typeof test6);
console.log(typeof test7);
console.log(typeof test8);
console.log(typeof test9);
JavaScript-Konsole
Hier sind die Testdaten
und die Tests.
Schreiben Sie hier Ihre
Ergebnisse hin. Gibt es
irgendwelche Überraschungen?

Get JavaScript-Programmierung von Kopf bis Fuß now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.