VBScript 變量
2024-07-21 02:15:30
供稿:網(wǎng)友
 
什么是變量? 
變量是一種使用方便的占位符,用于引用計算機(jī)內(nèi)存地址,該地址可以存儲 script 運行時可更改的程序信息。例如,可以創(chuàng)建一個名為 clickcount 的變量來存儲用戶單擊 web 頁面上某個對象的次數(shù)。使用變量并不需要了解變量在計算機(jī)內(nèi)存中的地址,只要通過變量名引用變量就可以查看或更改變量的值。在 vbscript 中只有一個基本數(shù)據(jù)類型,即 variant,因此所有變量的數(shù)據(jù)類型都是 variant。 
聲明變量 
聲明變量的一種方式是使用 dim 語句、public 語句和 private 語句在 script 中顯式聲明變量。例如: 
dim degreesfahrenheit 
聲明多個變量時,使用逗號分隔變量。例如: 
dim top, bottom, left, right 
另一種方式是通過直接在 script 中使用變量名這一簡單方式隱式聲明變量。這通常不是一個好習(xí)慣,因為這樣有時會由于變量名被拼錯而導(dǎo)致在運行 script 時出現(xiàn)意外的結(jié)果。因此,最好使用 option explicit 語句顯式聲明所有變量,并將其作為 script 的第一條語句。 
命名規(guī)則 
變量命名必須遵循 vbscript 的標(biāo)準(zhǔn)命名規(guī)則。變量命名必須遵循: 
第一個字符必須是字母。 
不能包含嵌入的句點。 
長度不能超過 255 個字符。 
在被聲明的作用域內(nèi)必須唯一。 
變量的作用域與存活期 
變量的作用域由聲明它的位置決定。如果在過程中聲明變量,則只有該過程中的代碼可以訪問或更改變量值,此時變量具有局部作用域并被稱為過程級變量。如果在過程之外聲明變量,則該變量可以被 script 中所有過程所識別,稱為 script 級變量,具有 script 級作用域。 
變量存在的時間稱為存活期。script 級變量的存活期從被聲明的一刻起,直到 script 運行結(jié)束。對于過程級變量,其存活期僅是該過程運行的時間,該過程結(jié)束后,變量隨之消失。在執(zhí)行過程時,局部變量是理想的臨時存儲空間。可以在不同過程中使用同名的局部變量,這是因為每個局部變量只被聲明它的過程識別。 
給變量賦值 
創(chuàng)建如下形式的表達(dá)式給變量賦值:變量在表達(dá)式左邊,要賦的值在表達(dá)式右邊。例如: 
b = 200 
標(biāo)量變量和數(shù)組變量 
多數(shù)情況下,只需為聲明的變量賦一個值。只包含一個值的變量被稱為標(biāo)量變量。有時候,將多個相關(guān)值賦給一個變量更為方便,因此可以創(chuàng)建包含一系列值的變量,稱為數(shù)組變量。數(shù)組變量和標(biāo)量變量是以相同的方式聲明的,唯一的區(qū)別是聲明數(shù)組變量時變量名后面帶有括號 ( )。下例聲明了一個包含 11 個元素的一維數(shù)組: 
dim a(10) 
雖然括號中顯示的數(shù)字是 10,但由于在 vbscript 中所有數(shù)組都是基于 0 的,所以這個數(shù)組實際上包含 11 個元素。在基于 0 的數(shù)組中,數(shù)組元素的數(shù)目總是括號中顯示的數(shù)目加 1。這種數(shù)組被稱為固定大小的數(shù)組。 
在數(shù)組中使用索引為數(shù)組的每個元素賦值。從 0 到 10,將數(shù)據(jù)賦給數(shù)組的元素,如下所示: 
a(0) = 256 
a(1) = 324 
a(2) = 100 
. . . 
a(10) = 55 
與此類似,使用索引可以檢索到所需的數(shù)組元素的數(shù)據(jù)。例如: 
. . . 
somevariable = a(8) 
. . . 
數(shù)組并不僅限于一維。數(shù)組的維數(shù)最大可以為 60(盡管大多數(shù)人不能理解超過 3 或 4 的維數(shù))。聲明多維數(shù)組時用逗號分隔括號中每個表示數(shù)組大小的數(shù)字。在下例中,mytable 變量是一個有 6 行和 11 列的二維數(shù)組: 
dim mytable(5, 10) 
在二維數(shù)組中,括號中第一個數(shù)字表示行的數(shù)目,第二個數(shù)字表示列的數(shù)目。 
也可以聲明動態(tài)數(shù)組,即在運行 script 時大小發(fā)生變化的數(shù)組。對數(shù)組的最初聲明使用 dim 語句或 redim 語句。但是對于動態(tài)數(shù)組,括號中不包含任何數(shù)字。例如: 
dim myarray() 
redim anotherarray() 
要使用動態(tài)數(shù)組,必須隨后使用 redim 確定維數(shù)和每一維的大小。在下例中,redim 將動態(tài)數(shù)組的初始大小設(shè)置為 25,而后面的 redim 語句將數(shù)組的大小重新調(diào)整為 30,同時使用 preserve 關(guān)鍵字在重新調(diào)整大小時保留數(shù)組的內(nèi)容。 
redim myarray(25) 
. . . 
redim preserve myarray(30) 
重新調(diào)整動態(tài)數(shù)組大小的次數(shù)是沒有任何限制的,但是應(yīng)注意:將數(shù)組的大小調(diào)小時,將會丟失被刪除元素的數(shù)據(jù)。