Microsoft® Visual Basic® Scripting Edition VBScript 变量 | VBScript 教程 上一页 | 下一页

##### 什么是变量？

> 变量是一种使用方便的占位符，用于引用计算机内存地址，该地址可以存储 Script 运行时可更改的程序信息。例如，可以创建一个名为 ClickCount 的变量来存储用户单击 Web 页面上某个对象的次数。使用变量并不需要了解变量在计算机内存中的地址，只要通过变量名引用变量就可以查看或更改变量的值。在 VBScript 中只有一个基本数据类型，即 Variant，因此所有变量的数据类型都是 Variant。

##### 声明变量

> 声明变量的一种方式是使用 Dim 语句、Public 语句和 Private 语句在 Script 中显式声明变量。例如：

> >      Dim DegreesFahrenheit

> 声明多个变量时，使用逗号分隔变量。例如：

> >      Dim Top, Bottom, Left, Right

> 另一种方式是通过直接在 Script 中使用变量名这一简单方式隐式声明变量。这通常不是一个好习惯，因为这样有时会由于变量名被拼错而导致在运行 Script 时出现意外的结果。因此，最好使用 Option Explicit 语句显式声明所有变量，并将其作为 Script 的第一条语句。

##### 命名规则

> 变量命名必须遵循 VBScript 的标准命名规则。变量命名必须遵循：
> - 第一个字符必须是字母。
> - 不能包含嵌入的句点。
> - 长度不能超过 255 个字符。
> - 在被声明的作用域内必须唯一。

##### 变量的作用域与存活期

> 变量的作用域由声明它的位置决定。如果在过程中声明变量，则只有该过程中的代码可以访问或更改变量值，此时变量具有局部作用域并被称为过程级变量。如果在过程之外声明变量，则该变量可以被 Script 中所有过程所识别，称为 Script 级变量，具有 Script 级作用域。

> 变量存在的时间称为存活期。Script 级变量的存活期从被声明的一刻起，直到 Script 运行结束。对于过程级变量，其存活期仅是该过程运行的时间，该过程结束后，变量随之消失。在执行过程时，局部变量是理想的临时存储空间。可以在不同过程中使用同名的局部变量，这是因为每个局部变量只被声明它的过程识别。

##### 给变量赋值

> 创建如下形式的表达式给变量赋值：变量在表达式左边，要赋的值在表达式右边。例如：

> >      B = 200

##### 标量变量和数组变量

> 多数情况下，只需为声明的变量赋一个值。只包含一个值的变量被称为标量变量。有时候，将多个相关值赋给一个变量更为方便，因此可以创建包含一系列值的变量，称为数组变量。数组变量和标量变量是以相同的方式声明的，唯一的区别是声明数组变量时变量名后面带有括号 ( )。下例声明了一个包含 11 个元素的一维数组：

> >      Dim A(10)

> 虽然括号中显示的数字是 10，但由于在 VBScript 中所有数组都是基于 0 的，所以这个数组实际上包含 11 个元素。在基于 0 的数组中，数组元素的数目总是括号中显示的数目加 1。这种数组被称为固定大小的数组。

> 在数组中使用索引为数组的每个元素赋值。从 0 到 10，将数据赋给数组的元素，如下所示：

> >      A(0) = 256
> >      A(1) = 324
> >      A(2) = 100
> >      . . .
> >      A(10) = 55

> 与此类似，使用索引可以检索到所需的数组元素的数据。例如：

> >      . . .
> >      SomeVariable = A(8)
> >      . . .

> 数组并不仅限于一维。数组的维数最大可以为 60（尽管大多数人不能理解超过 3 或 4 的维数）。声明多维数组时用逗号分隔括号中每个表示数组大小的数字。在下例中，MyTable 变量是一个有 6 行和 11 列的二维数组：

> >      Dim MyTable(5, 10)

> 在二维数组中，括号中第一个数字表示行的数目，第二个数字表示列的数目。

> 也可以声明动态数组，即在运行 Script 时大小发生变化的数组。对数组的最初声明使用 Dim 语句或 ReDim 语句。但是对于动态数组，括号中不包含任何数字。例如：

> >      Dim MyArray()
> >      ReDim AnotherArray()

> 要使用动态数组，必须随后使用 ReDim 确定维数和每一维的大小。在下例中，ReDim 将动态数组的初始大小设置为 25，而后面的 ReDim 语句将数组的大小重新调整为 30，同时使用 Preserve 关键字在重新调整大小时保留数组的内容。

> >      ReDim MyArray(25)
> >      . . .
> >      ReDim Preserve MyArray(30)

> 重新调整动态数组大小的次数是没有任何限制的，但是应注意：将数组的大小调小时，将会丢失被删除元素的数据。

© 1997 Microsoft Corporation 版权所有。请参阅使用条件。