null und nicht definiert

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?

object
undefined
primitive
string