JavaScript

Knowledge Base

JavaScript / ECMAScript

Datentyp Null

Null ist in der ECMAScript Spezifikation ein Datentyp der nur einen Wert umfasst: null

Null als Wert bedeutet, dass einer Variable kein anderer Wert (Zahl, String, Objekt etc.) zugeordnet ist - es handelt sich bei der Variable also um einen deklarierten und initialisierten (entgegen z. B. Undefined) aber leeren Platzhalter.

Da sich bei JavaScript der Typ aber aus dem Wert ermittelt und null keinem anderen Datentyp zugeordnet ist, ist die Variable entsprechend auch vom Typ Null.

Dadurch unterscheidet sich von anderen Sprachen, wie z. B. C#, bei denen null bedeutet, dass die Variable zwar keine Instanz, aber durchaus einen Typ hat (z. B. der Typ "Objekt" oder eben davon abgeleitet).

Leider gibt es dank eines Programmierfehlers in den ersten JavaScript-Versionen das Problem, dass ausgerechnet der typeof-Operator bei einer Variable mit dem Wert-Null nicht den Datentyp "null" zurückgibt, sondern "object" (obwohl es sich hier nicht um ein Objekt-Datentyp handelt). Das sorgt gerade bei C#-Programmierern zu Verständnis-Problemen, weil null in C# ja tatsächlich eine "fehlende" Objekt-Instanz bedeutet und die C#-Variable letztendlich tatsächlich vom Typ "Objekt" wäre:

<script>
    var a = null;
    document.writeln(a + "<br>");
    document.writeln("typeof(a) = " + typeof(a) + "<br>");
</script>      

gibt aus:

null
typeof(a) = object