宣告 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 陳述式

您可以同時宣告多個變數的型別和初始值,但是一行一個宣告比較容易閱讀。例如,這個程式碼片段就不太容易閱讀:

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

下列程式碼片段比較容易閱讀:

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

在單行上宣告多個變數時,您還需牢記型別附註只適用於緊接在它之前的變數。下列程式碼中的 x 是一個 Object,因為當 y 是 int 時,它是預設型別且 x 不指定型別。

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.

以下範例使用單一的 var 陳述式來宣告數個變數:

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

若要宣告一個變數,而且初始化時不指派特殊值,請為它指派 JScript null 值。以下是一個範例。

var bestAge = null;

宣告的變數沒有指派變數值,但有 undefined 的 JScript 值。以下是一個範例。

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

在 JScript 中,null 和 undefined 的主要差異在於 null 可以轉換為零 (雖然它並不是零),而 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.
注意事項:

宣告變數時,如果不使用 var 關鍵字,則在 JScript 預設的快速模式中執行時,會產生編譯時期錯誤。若要從不使用 var 關鍵字的命令列來編譯程式,您必須先使用 /fast- 來關閉快速選項。因為執行緒的問題,在 ASP.NET 中關閉快速選項並不安全。

請參閱

工作

HOW TO:從命令列編譯 JScript 程式碼

概念

JScript 識別項

其他資源

JScript 變數和常數

JScript 資料型別