In JavaScript gibt es mehrere Möglichkeiten, das Fehlen eines Werts anzugeben. Diese Seite
beschreibt die beiden häufigsten Methoden: null und undefined.
null
Das Keyword null steht für eine absichtlich definierte Abwesenheit von Werten. null
ist ein Primitiv, obwohl der Operator typeof zurückgibt, dass null ein Objekt ist.
Dies ist ein Fehler, der
von der ersten JavaScript-Version
überarbeitet und wurden absichtlich
nicht berücksichtigt, um zu verhindern, dass das erwartete Verhalten im Web beeinträchtigt wird.
typeof null
> object
Sie können eine Variable als null definieren.
mit der Erwartung, dass er entweder einen Wert darstellt, der ihm irgendwann
in einem Skript oder in einem explizit fehlenden Wert. Sie können auch die null
-Wert einer vorhandenen Referenz hinzu, um einen vorherigen Wert zu löschen.
undefined
undefined ist ein primitiver Wert, der Variablen zugewiesen ist
die gerade deklariert wurden, oder dem resultierenden Wert eines Vorgangs,
gibt keinen aussagekräftigen Wert zurück. Das kann z. B. passieren, wenn Sie
eine Funktion in der Entwicklerkonsole eines Browsers:
function myFunction() {}
> undefined
Eine Funktion gibt explizit undefined zurück, wenn ihre return-Anweisung
gibt keinen Wert zurück.
(function() {
return;
}());
> undefined
Vergleich von null und undefined
Obwohl undefined und null einige funktionale Überschneidungen aufweisen, gibt es
für unterschiedliche Zwecke. Im strengen Sinne stellt null einen Wert dar,
bewusst als „leer“ definiert, und undefined steht für einen fehlenden zugewiesenen Wert.
null und undefined sind leicht gleich, aber nicht genau gleich.
Der Operator für lose Gleichheit erzwingt Operanden verschiedener Typen in boolesche Werte
-Werte, sodass null und undefined beide false sind. Der strikte Gleichheitsoperator
betrachtet Operanden verschiedener Datentypen als ungleich.
null == undefined
> true
null === undefined
> false
Im Gegensatz zum reservierten Keyword null ist undefined eine Eigenschaft des
globales Objekt zu finden ist. Das war ein Design
bei der Entwicklung von JavaScript
getroffen haben und ältere Browser
undefined vollständig überschreiben. In modernen Browsern ist es immer noch möglich,
undefined als Kennung in nicht globalen Gültigkeitsbereichen, wobei der Wert im
den Geltungsbereich dieser Erklärung. Verwenden Sie nie undefined als Kennung. Es
kann zu unerwartetem Verhalten führen und die zukünftige
Ihre Codebasis zu verbessern.
Wissen testen
Was gibt typeof null zurück?
objectundefinedprimitivestring