VBScript教程 第四课
什么是变量?- V/ I2 g# _, o/ f9 [' j. }7 v
! H$ b* E1 d7 Q# W! }" b变量是一种使用方便的占位符,用于引用计算机内存地址,该地址可以存储 Script 运行时可更改的程序信息。例如,可以创建一个名为 ClickCount 的变量来存储用户单击 Web 页面上某个对象的次数。使用变量并不需要了解变量在计算机内存中的地址,只要通过变量名引用变量就可以查看或更改变量的值。在 VBScript 中只有一个基本数据类型,即 Variant,因此所有变量的数据类型都是 Variant。# w! ?1 [6 h/ _) a% ?/ A( H
% ^+ u4 R; {9 H; b; S' G* @声明变量
$ j/ Z! M6 L2 y1 ] h
+ e& }9 a' I L# }& r8 i声明变量的一种方式是使用 Dim 语句、Public 语句和 Private 语句在 Script 中显式声明变量。例如:
2 b& D5 e" g% a: i: r. i, n; d5 Y4 c; O* ~
Dim DegreesFahrenheit
% b# ?& H0 s$ v4 {& p: b3 \1 ]声明多个变量时,使用逗号分隔变量。例如: 3 l2 S/ s% k k7 O4 i; Z# u. y: A
Dim Top, Bottom, Left, Right
7 Y, c" g |8 b: i; I J& d
. c3 P. O- Q9 J5 K另一种方式是通过直接在 Script 中使用变量名这一简单方式隐式声明变量。这通常不是一个好习惯,因为这样有时会由于变量名被拼错而导致在运行 Script 时出现意外的结果。因此,最好使用 Option Explicit 语句显式声明所有变量,并将其作为 Script 的第一条语句。
- t# B( }# {5 D, o* l6 B; }命名规则
# w, v0 d% P% z9 m+ m0 N变量命名必须遵循 VBScript 的标准命名规则。变量命名必须遵循: 7 s6 s1 q: m) O& E2 V2 C; M
9 ^/ P+ Y( L( W0 [* S$ O6 C·第一个字符必须是字母。
+ Z+ h7 k8 h+ \; f4 P·不能包含嵌入的句点。
7 y9 I1 x2 e! m·长度不能超过 255 个字符。
' Y7 U8 W2 W8 P: Z! [! ~- ~·在被声明的作用域内必须唯一。
0 t2 `" M e# t# T3 d# |+ [% [! ?. K) r
变量的作用域与存活期
8 S5 N% O: t6 @( A2 A8 Y% K ] Z! L9 w% T
变量的作用域由声明它的位置决定。如果在过程中声明变量,则只有该过程中的代码可以访问或更改变量值,此时变量具有局部作用域并被称为过程级变量。如果在过程之外声明变量,则该变量可以被 Script 中所有过程所识别,称为 Script 级变量,具有 Script 级作用域。
2 T* W8 b; C; p% m: B! k' u
2 ?" w4 A0 j5 U4 G5 U0 e" s$ l! F变量存在的时间称为存活期。Script 级变量的存活期从被声明的一刻起,直到 Script 运行结束。对于过程级变量,其存活期仅是该过程运行的时间,该过程结束后,变量随之消失。在执行过程时,局部变量是理想的临时存储空间。可以在不同过程中使用同名的局部变量,这是因为每个局部变量只被声明它的过程识别。
; e& P+ m: ?" X7 V: \; g6 g3 s; z$ j6 b
给变量赋值! L) f& g% F3 Q/ [' r
! r# G8 G- E3 {. f- C3 h4 [创建如下形式的表达式给变量赋值:变量在表达式左边,要赋的值在表达式右边。例如: ; m6 ^: F& U# b% O" k
/ @4 v2 {. a3 z; G0 s; vB = 200
+ [- q7 L0 Y! D; z
! F! s8 l; g4 T$ N' G' M标量变量和数组变量! Z x+ J( j: H1 y f! m
. o1 ~4 z' o) [3 h多数情况下,只需为声明的变量赋一个值。只包含一个值的变量被称为标量变量。有时候,将多个相关值赋给一个变量更为方便,因此可以创建包含一系列值的变量,称为数组变量。数组变量和标量变量是以相同的方式声明的,唯一的区别是声明数组变量时变量名后面带有括号 ( )。下例声明了一个包含 11 个元素的一维数组: # e9 H% m& G$ D3 m0 ~* b/ s: f7 L
4 F0 {5 [$ w; ?, bDim A(10)8 _: y6 i2 Z8 u0 M
4 h O6 o' k4 \8 K0 u2 m虽然括号中显示的数字是 10,但由于在 VBScript 中所有数组都是基于 0 的,所以这个数组实际上包含 11 个元素。在基于 0 的数组中,数组元素的数目总是括号中显示的数目加 1。这种数组被称为固定大小的数组。
~: d3 e6 Q5 |! Q& x4 {& { q* `$ H
4 V& e9 T ~1 a% h在数组中使用索引为数组的每个元素赋值。从 0 到 10,将数据赋给数组的元素,如下所示:
" A7 _" m* n* T
, b0 J1 d6 W! ]( j) W! y* {A(0) = 2564 i6 T* W. m# y' V% g, a8 u& N$ ^
A(1) = 324- L- c' e+ j* U1 v) Z6 p2 f
A(2) = 100/ W5 G5 ~7 u6 v% s/ q
. . .
* j5 c4 h4 t) j2 }' YA(10) = 55
+ ` E0 b* o. U! S1 Y; E! _8 K$ Z% E$ X* P" w
与此类似,使用索引可以检索到所需的数组元素的数据。例如:
) W6 Q* o* H# Z6 t7 V. . .
) f! j( O/ j5 q3 g$ V: C# r' qSomeVariable = A(8)
- w. a" ~+ {& z7 r. q4 t. . .
T( z' K; k5 Q+ u- w: ^! C4 B. s
数组并不仅限于一维。数组的维数最大可以为 60(尽管大多数人不能理解超过 3 或 4 的维数)。声明多维数组时用逗号分隔括号中每个表示数组大小的数字。在下例中,MyTable 变量是一个有 6 行和 11 列的二维数组:
4 Q8 E+ A' ^9 {; O8 n' s! gDim MyTable(5, 10)
0 d+ q/ c) U6 d) L4 L* |3 D# ^0 `( ~& v( _: ]
在二维数组中,括号中第一个数字表示行的数目,第二个数字表示列的数目。 # c# G0 F1 K; f; ^2 H5 K$ X
也可以声明动态数组,即在运行 Script 时大小发生变化的数组。对数组的最初声明使用 Dim 语句或 ReDim 语句。但是对于动态数组,括号中不包含任何数字。例如: 9 ?% e: d# U2 d6 O% Z" ]7 A+ I
( x9 ^) N2 e% _# ~Dim MyArray()9 I) }2 E* J* E. C. W9 d
ReDim AnotherArray()) \7 h, g1 Y: h" e
8 [* t; ?1 g5 X1 a, \; L. v
要使用动态数组,必须随后使用 ReDim 确定维数和每一维的大小。在下例中,ReDim 将动态数组的初始大小设置为 25,而后面的 ReDim 语句将数组的大小重新调整为 30,同时使用 Preserve 关键字在重新调整大小时保留数组的内容。
! Y3 w9 q/ I. A- m! S5 ^$ H) p. w! Z- |1 s1 s; q9 R- @
ReDim MyArray(25)+ C" @" S1 R$ I+ k9 v0 U6 [
. . . ' B5 x' {* O+ |9 d, T0 j
ReDim Preserve MyArray(30)1 L2 D1 A( W7 X7 {5 P" {
6 W8 w5 d7 E8 L- ^! h3 [" n% I2 O重新调整动态数组大小的次数是没有任何限制的,但是应注意:将数组的大小调小时,将会丢失被删除元素的数据。
点击图标进入精品网摘收藏 欢迎大家加入网络收藏夹