Freigeben über


Nicht definierte Werte

In JScript können Sie eine Variable deklarieren, ohne ihr einen Wert zuzuweisen. Eine Variable mit Typanmerkung nimmt den Standardwert für diesen Typ an. Beispielsweise ist der Standardwert für einen numeric-Typ null, und der Standardwert für den string-Datentyp ist eine leere Zeichenfolge. Allerdings hat eine Variable ohne einen angegebenen Datentyp den Anfangswert undefined und den Datentyp undefined. Entsprechend gibt Code, der auf eine expando-Objekteigenschaft oder ein Arrayelement zugreift, das nicht vorhanden ist, den Wert undefined zurück.

Verwenden von nicht definierten Werten

Um festzustellen, ob eine Variable oder eine Objekteigenschaft vorhanden ist, vergleichen Sie diese mit dem undefined-Schlüsselwort (dies funktioniert nur bei einer deklarierten Variablen oder Eigenschaft), oder überprüfen Sie, ob sie den Typ undefined hat (dies funktioniert auch für eine nicht deklarierte Variable oder Eigenschaft). Angenommen, der Programmierer möchte im folgenden Codebeispiel testen, ob die Variable x deklariert wurde:

// One method to test if an identifier (x) is undefined.
// This will always work, even if x has not been declared.
if (typeof(x) == "undefined"){
   // Do something.
}
// Another method to test if an identifier (x) is undefined.
// This gives a compile-time error if x is not declared.
if (x == undefined){
   // Do something.
}

Eine andere Möglichkeit der Überprüfung, ob eine Variable oder Objekteigenschaft nicht definiert ist, besteht darin, den Wert mit null zu vergleichen. Eine Variable, die null enthält, besitzt keinen Wert bzw. kein Objekt. Sie enthält also keine gültige Zahl oder Zeichenfolge, kein gültiges Array oder Objekt bzw. keinen gültigen booleschen Wert. Sie können den Inhalt einer Variablen löschen (ohne die Variable selbst zu löschen), indem Sie ihr den Wert NULL zuweisen. Beachten Sie, dass ein Vergleich der Werte undefined und null mithilfe des Gleichheitsoperators (==) ergibt, dass beide gleich sind.

Tipp

In JScript wird null mithilfe des Gleichheitsoperators nicht als gleich 0 (null) ausgewertet. Dieses Verhalten unterscheidet sich von dem in anderen Sprachen, z. B. C und C++.

In diesem Beispiel wird getestet, ob das obj-Objekt die prop-Eigenschaft hat.

// A third method to test if an identifier (obj.prop) is undefined.
if (obj.prop == null){
   // Do something.
}

Dieser Vergleich ist true, wenn eine der folgenden Bedingungen erfüllt ist:

  • Die obj.prop-Eigenschaft enthält den Wert null.

  • Die obj.prop-Eigenschaft ist nicht vorhanden.

Es gibt noch eine weitere Möglichkeit, um zu überprüfen, ob eine Objekteigenschaft vorhanden ist. Der Operator in gibt true zurück, wenn die angegebene Eigenschaft in dem bereitgestellten Objekt enthalten ist. Der folgende Code ergibt beispielsweise true, wenn die prop-Eigenschaft im obj-Objekt vorhanden ist.

if ("prop" in someObject)
// someObject has the property 'prop'

Um eine Eigenschaft aus einem Objekt zu entfernen, verwenden Sie den Operator delete.

Siehe auch

Referenz

NULL-Literal

undefined-Eigenschaft

in-Operator

delete-Operator

Weitere Ressourcen

JScript-Variablen und -Konstanten

Daten in JScript

JScript-Datentypen

Datentypen (Visual Studio - JScript)