JScript の変数と定数の宣言

更新 : 2007 年 11 月

JScript プログラムでは、使用する変数の名前を指定する必要があります。また、変数ごとに格納するデータ型を指定できます。これらのタスクはどちらも var ステートメントで実行します。

型指定された変数および定数の宣言

JScript では、変数を宣言するときに、型の注釈を指定してその型を宣言できます。変数 count が int 型 (整数型) として宣言されている例を次に示します。初期値が指定されていないため、count の値は int 型の既定値である 0 となります。

var count : int; // An integer variable.

変数に初期値を代入することもできます。

var count : int = 1; // An initialized integer variable.

定数は変数と同じように宣言しますが、初期化する必要があります。定義した定数値は変更できません。次に例を示します。

const daysInWeek : int = 7;            // An integer constant.
const favoriteDay : String = "Friday"; // A string constant.
const maxDaysInMonth : int = 31, maxMonthsInYear : int = 12

変数に型を指定して宣言した場合、その型で意味のある値を代入する必要があります。たとえば、整数型の変数に文字列を代入しても意味はありません。この場合、TypeError 例外がスローされ、コードに型の不一致があることが示されます。TypeError は、スクリプトの実行中に発生する例外 (エラー) です。catch ブロックは、JScript プログラムでスローされた例外をキャッチできます。詳細については、「try...catch...finally ステートメント」を参照してください。

各宣言を 1 行ずつ記述した方が読みやすいコードになりますが、複数の変数の型と初期値を同時に宣言できます。次に示すのは、読みにくいコードの例です。

var count : int = 1; amount : int = 12, level : double = 5346.9009 

次のように宣言すると、コードは読みやすくなります。

var count : int = 1;
var amount : int = 12;
var level : double = 5346.9009;

複数の変数を 1 行で宣言する場合、型の注釈が適用されるのは直前の変数だけです。次のコードでは、x には型が指定されていません。既定の型は Object であるため、x は Object です。一方、y は int です。

var x, y : int;

型指定されていない変数および定数の宣言

型指定された変数を使うことは必須ではありませんが、型指定されていない変数を使ったプログラムは低速で、エラーが発生しやすくなります。

次の例では、count という名前の変数を宣言しています。

var count;  // Declare a single declaration.

データ型を指定しない場合、変数または定数の既定の型は Object になります。値を代入しない場合、変数の既定値は undefined になります。次のコードは、コマンド ライン プログラムで既定の型と既定値を表示する例です。

var count; // Declare a single declaration using default type and value.
print(count); //Print the value of count.
print(typeof(count)); // Prints undefined.

型を宣言しなくても、変数に初期値を指定できます。

var count = 1; // An initialized variable.

次の例では、1 つの var ステートメントで、複数の変数を宣言しています。

var count, amount, level;  // multiple declarations with a single var keyword.

特定の値を代入せずに変数を宣言および初期化するには、変数に JScript 値の null を代入します。次に例を示します。

var bestAge = null;

値を代入せずに宣言した変数は、存在していますが、値は JScript 値の undefined になります。次に例を示します。

var currentCount;
var finalCount = 1 * currentCount; // finalCount has the value NaN since currentCount is undefined.

JScript における null と undefined の主な違いは、null が (0 ではありませんが) 0 に変換されるのに対して、undefined は特殊な値 NaN (非数) に変換される点です。等値演算子 (==) を使用する場合、null 値と undefined 値は常に等しい値として扱われます。

型指定されていない定数を宣言する手順は、変数を宣言する手順と同様ですが、初期値を指定する必要があります。次に例を示します。

const daysInWeek  = 7;
const favoriteDay  = "Friday";
const maxDaysInMonth  = 31, maxMonthsInYear = 12

var を使用しない変数の宣言

宣言内で var キーワードを使用せずに変数を宣言して、これに値を代入できます。これは "暗黙の宣言" であり、望ましくありません。暗黙の宣言では、指定された名前でグローバル オブジェクトのプロパティが作成されます。作成されたプロパティは、グローバル スコープの参照可能範囲を持つ変数のように機能します。プロシージャ レベルで変数を宣言する場合、一般的に参照可能範囲がグローバル スコープとなることは望ましくありません。この場合は、変数の宣言で var キーワードを使用する必要があります。

noStringAtAll = ""; // The variable noStringAtAll is declared implicitly.

宣言されていない変数を参照することはできません。

var volume = length * width; // Error - length and width do not yet exist.
9h139yks.alert_note(ja-jp,VS.90).gifメモ :

var キーワードを指定せずに変数を宣言すると、高速モードで実行するときにコンパイル エラーが発生します。JScript では、既定のモードは高速モードです。var キーワードを使用しないプログラムをコマンド ラインからコンパイルするには、/fast- を使用して fast オプションをオフにする必要があります。ASP.NET で fast オプションをオフにするのは安全ではありません。スレッドに関する問題が発生する場合があります。

参照

処理手順

方法 : コマンド ラインで JScript コードをコンパイルする

概念

JScript の識別子

その他の技術情報

JScript の変数と定数

JScript のデータ型