Der Unterschied zwischen null und undefined in Javascript
Jahrelang war ich mit Javascript auf Kriegsfuß. Ich war froh, wenn jemand anderes sich darum gekümmert hat und ich mich einfach nur mit PHP beschäftigen durfte.
In letzter Zeit schaue ich mir allerdings gerne CSS, Bootstrap, React, Javascript und hier insbesondere das Modern Javascript an.
Irgendwie bin ich dann auf die Frage gestoßen was der Unterschied zwischen null und undefined in Javascript ist.
Im ersten Augenblick könnte man denken, dass es sich um das Gleiche handelt. Doch dieser Artikel wird dir die Unterschiede und Gemeinsamkeiten zeigen.
Inhaltsverzeichnis
Was ist undefined?
Eine Variable die undefined ist wurde zwar deklariert mit let, var oder const, aber ihr wurde kein Wert zugewiesen.
let myVarUndefined;
console.log(myVarUndefined); // undefined
console.log(typeof myVarUndefined); // undefined
Was ist null?
Die Variable ist definiert und ihr wurde der Wert null zugewiesen.
let myVarNull = null;
console.log(myVarNull); // null
console.log(typeof myVarNull); // object
is not defined sollte eigentlich is not declared heissen
Eine Merkwürdigkeit neben 1000 anderen in Javascript ist die Fehlermeldung „is not defined“.
Folgender Code gibt myVar is not defined aus. Richtiger für mein Verständnis wäre myVar is not declared.
if (myVar) {
console.log('fehler');
}
Gemeinsamkeiten zwischen null und undefined
Neben den Unterschieden gibt es tatsächlich auch Gemeinsamkeiten zwischen null und undefined.
Sie gehören zu den falsy values in Javascript. Also wenn du per if darauf prüfst, sind beide false. Außerdem gehören beide zu den primitiven Datentypen.
Zum Abschluss noch ein Beispiel aus dem Leben
Ich will mir im Internet ein neues Auto kaufen und finde eine Anzeige im Internet. Ich erstelle mir daraus ein Objekt auto und weise diesem die Daten zu, die ich aus der Anzeige habe.
let auto = {
lenkrad: true,
motor: true,
fensterheber: null
}
Das Auto hat ein Lenkrad und einen Motor. Das ist klar. Aber leider steht in der Anzeige nicht ob das Fahrzeug elektrische Fensterheber hat. In der Regel schon, aber mir fehlt diese Information jetzt aktuell.
Ich könnte hier bei fensterheber true oder false eintragen, aber das wäre ja falsch, weil ich die Information gar nicht habe. Also trage ich hier null ein und zeige damit, dass mir die Information aktuell nicht bekannt ist.
Mehr zum Nullwert kannst du auch auf Wikipedia nachlesen.
Du hast es geschafft.
Toll! Javascript ist nicht nur Spaß. Es kann auch viel Frust bei der Entwicklung entstehen. Aber gerade in den letzten zwei Jahren ist in der Entwicklung schon wieder so viel passiert, dass man einfach am Ball bleiben muss.
Zum Abschluss möchte ich dir noch einen Javascript Udemy Kurs empfehlen. Dabei handelt es sich um einen Kurs über Modern Javascript. Ich selber habe den absolviert und bin total begeistert davon. Brad Traversy ist ein amerikanischer Entwickler, der aber auch schon so ziemlich alles in seinem Leben gemacht hat. Ein typischer Quereinsteiger. Sein Lernstil ist einfach grandios.