宣告 JScript 變數和常數
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 中關閉快速選項並不安全。 |