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?
primitive
string
undefined
object