Deklarieren von JScript-Variablen und -Konstanten
Aktualisiert: November 2007
Ein JScript-Programm muss den Namen jeder Variablen angeben, die von dem Programm verwendet wird. Darüber hinaus kann das Programm angeben, welcher Datentyp in den einzelnen Variablen gespeichert wird. Diese beiden Aufgaben führen Sie mit der var-Anweisung aus.
Deklarieren von typisierten Variablen und Konstanten
In JScript können Sie eine Variable und gleichzeitig mithilfe der Typanmerkung ihren Typ deklarieren. Im folgenden Beispiel wird die Variable count als vom Typ int (integer, ganze Zahl) deklariert. Da kein Anfangswert bereitgestellt wird, hat count den Standardwert int, also 0 (null).
var count : int; // An integer variable.
Außerdem können Sie einer Variablen einen Anfangswert zuweisen:
var count : int = 1; // An initialized integer variable.
Konstanten, die ähnlich wie Variablen deklariert werden, müssen initialisiert werden. Nachdem ein Konstantenwert definiert worden ist, kann der Wert nicht mehr verändert werden. Beispiel:
const daysInWeek : int = 7; // An integer constant.
const favoriteDay : String = "Friday"; // A string constant.
const maxDaysInMonth : int = 31, maxMonthsInYear : int = 12
Wenn Sie eine Variable eines bestimmten Typs deklarieren, muss der zugewiesene Wert natürlich für diesen Typ sinnvoll sein. Beispielsweise macht es keinen Sinn, einer ganzzahligen Variablen einen Zeichenfolgenwert zuzuweisen. Wenn Sie dies trotzdem versuchen, tritt eine TypeError-Ausnahme auf, die darauf hinweist, dass im Code unverträgliche Typen vorliegen. Ein TypeError ist eine Ausnahme bzw. ein Fehler, der in einem Skript während der Ausführung auftreten kann. Ein catch-Block kann Ausnahmen feststellen, die durch ein JScript‑Programm ausgelöst wurden. Weitere Informationen hierzu finden Sie unter try...catch...finally-Anweisung.
Sie können den Typ und den Anfangswert mehrerer Variablen gleichzeitig deklarieren. Allerdings ist der Code leichter lesbar, wenn jede Deklaration sich auf einer separaten Zeile befindet. Das folgende Codesegment ist z. B. schwer lesbar:
var count : int = 1; amount : int = 12, level : double = 5346.9009
Das folgende Codesegment ist leichter lesbar:
var count : int = 1;
var amount : int = 12;
var level : double = 5346.9009;
Beim Deklarieren mehrerer Variablen in einer einzelnen Zeile müssen Sie außerdem darauf achten, dass sich eine Typanmerkung nur auf die Variable bezieht, die unmittelbar vor ihr steht. Im folgenden Codebeispiel ist x ein Object, da dies der Standardtyp ist und für x kein Typ angegeben ist. Dagegen ist y vom Typ int.
var x, y : int;
Deklarieren von nicht typisierten Variablen und Konstanten
Es ist zwar nicht notwendig, typisierte Variablen zu verwenden, doch laufen Programme, die nicht typisierte Variablen enthalten, langsamer mit und höherer Fehleranfälligkeit.
Das folgende Beispiel deklariert eine einzige Variable mit dem Namen count.
var count; // Declare a single declaration.
Ohne die Angabe eines Datentyps ist der Standardtyp für eine Variable oder Konstante Object. Wenn kein Wert zugewiesen ist, ist der Standardwert für die Variable undefined. Der folgende Code veranschaulicht diese Standardwerte für ein Befehlszeilenprogramm:
var count; // Declare a single declaration using default type and value.
print(count); //Print the value of count.
print(typeof(count)); // Prints undefined.
Sie können einer Variablen aber auch einen Anfangswert zuweisen, ohne den Typ zu deklarieren:
var count = 1; // An initialized variable.
Im nächsten Beispiel werden mehrere Variablen mit nur einer var-Anweisung deklariert:
var count, amount, level; // multiple declarations with a single var keyword.
Um eine Variable zu deklarieren und zu initialisieren, ohne ihr einen bestimmten Wert zuzuordnen, weisen sie ihr den JScript-Wert null zu. Im Folgenden ein Beispiel.
var bestAge = null;
Eine deklarierte Variable ohne zugewiesenen Wert ist zwar vorhanden, hat aber den JScript-Wert undefined. Im Folgenden ein Beispiel.
var currentCount;
var finalCount = 1 * currentCount; // finalCount has the value NaN since currentCount is undefined.
Der Hauptunterschied zwischen nullund undefined in JScript ist, dass nullin die Zahl 0 konvertiert wird (obwohl es sich nicht um 0 handelt), während undefined in den speziellen Wert NaN (Not a Number, keine Zahl) konvertiert wird. Ironischerweise ergibt ein Vergleich zwischen null und undefined immer Gleichheit, wenn der Gleichheitsoperator (==) verwendet wird.
Beim Deklarieren von nicht typisierten Konstanten gehen Sie so vor, wie beim Deklarieren von Variablen, jedoch müssen Sie für nicht typisierte Konstanten einen Anfangswert angeben. Beispiel:
const daysInWeek = 7;
const favoriteDay = "Friday";
const maxDaysInMonth = 31, maxMonthsInYear = 12
Deklarieren von Variablen ohne "var"
Sie können eine Variable deklarieren, ohne das Schlüsselwort var in der Deklaration zu verwenden, und ihr einen Wert zuweisen. Dies wird als implizite Deklaration bezeichnet und ist nicht empfehlenswert. Eine implizite Deklaration erstellt eine Eigenschaft des globalen Objekts mit dem zugewiesenen Namen. Die Eigenschaft verhält sich wie eine Variable mit Sichtbarkeit im globalen Gültigkeitsbereich. Wenn Sie jedoch eine Variable auf Prozedurebene deklarieren, soll diese meist nicht im globalen Gültigkeitsbereich sichtbar sein. In diesem Fall müssen Sie das var-Schlüsselwort in der Variablendeklaration verwenden.
noStringAtAll = ""; // The variable noStringAtAll is declared implicitly.
Sie können keine Variable verwenden, die nicht deklariert wurde.
var volume = length * width; // Error - length and width do not yet exist.
Hinweis: |
---|
Wenn Sie Variablen ohne das var-Schlüsselwort deklarieren, wird bei der Ausführung im schnellen Modus, dem Standardmodus für JScript, ein Kompilierzeitfehler generiert. Um ein Programm, das das var-Schlüsselwort nicht verwendet, von der Befehlszeile aus zu kompilieren, müssen Sie den schnellen Modus mit /fast- deaktivieren. Das Deaktivieren des schnellen Modus in ASP.NET stellt aufgrund von Threadingproblemen einen Unsicherheitsfaktor dar. |
Siehe auch
Aufgaben
Gewusst wie: Kompilieren von JScript-Code über die Befehlszeile