VBScript 变量声明与数据类型:Dim、String、Boolean
变量是编程的基础。变量用于保存值或表达式。每当您要处理一段数据时,都必须声明一个变量。
例如,如果您要存储学生姓名或员工薪资,您将使用名为“students”或“salaries”的变量。
变量也可用于保存表达式。假设您使用变量 markE 和 markM 存储了学生在英语和数学上的分数。
您想计算总分。然后,您可以使用名为 markT 的变量,并将其值设置为 markE + markM。换句话说,markT = markE + markM。这里,markT 是一个保存表达式的变量。
声明变量
声明变量与创建变量相同,因为您是在指示计算机保留内存空间。您可以按自己喜欢的方式命名变量。它可以是像 x、y 或 z 这样的短名称,也可以是像 student、Name、salary 等更具描述性的名称。提供清晰有意义的变量名被认为是良好的编程实践。
VBScript 变量名有一些规则。
- 变量名必须以字母开头。示例:salary、mark 等。不允许以数字或特殊字符开头的变量。示例:1stSchool、3rdCar、_name 等。
- 变量名不能超过 255 个字符。
- 变量名不应包含句点(.)。
要声明变量,您需要使用关键字 Dim。假设您计划在您的VBScript 程序中使用一个名为“salary”的变量,语法为:
Dim salary;
仅声明 VBS 变量是不够的,您需要使用它。您必须在某个时间点为其分配一个值,这个过程称为初始化变量。如果您计划声明一个名为 salary 的变量,您可以这样编写代码:
Dim salary salary = 10000
您需要确保的重要事项是,在声明变量时不要为其分配值。假设您写了如下语句:
Dim salary = 10000
如果您尝试使用 document.write 输出 salary,它将不会返回任何输出。
代码示例
步骤 1) 打开您的文本编辑器并添加以下代码行。
<html> <head> <title>Variables</title> </head> <body> <script type="text/vbscript"> Dim variable1 variable1="John" document.write(variable1) ‘Dim variable2 = "Smith" ‘document.write(variable2) </script> </body> </html>
步骤 2) 将此文件以 variable.html 的名称保存在您喜欢的位置,然后(按照上一章的说明)在 IE 中打开它。现在,您将在浏览器中看到“John”这个值。
步骤 3) 接下来,取消注释第 11 和 12 行。
再次保存文件,如果 IE 浏览器已打开,请刷新它,或者在 IE 浏览器中打开该文件。您可能会惊奇地发现什么都没有,既没有 John 也没有 Smith。这里的问题是,您试图在声明变量时为其赋值,这是不允许的。
松散绑定
VBScript 允许您在不声明变量的情况下使用变量(称为松散绑定)。例如,在没有语句 Dim student 的情况下,您可以为变量 student 赋值,例如:student = “John”。
但是,这绝不是一个好的编程实践。如果您在使用未声明的变量时拼写错误,VBScript 将不会提示您错误。
因此,为了使代码更易于阅读和识别错误,您应该在代码开头使用 Option Explicit 语句,这样即使您忘记声明所有变量,也会强制您声明它们。为了避免与变量类型相关的问题,最好在 VBScript 代码开头指定 Option Explicit 语句。
代码示例
步骤 1) 打开您的文本编辑器并添加以下代码行。
<html> <body> <script type="text/vbscript"> Option Explicit ‘Dim markE, markM, markT markE=90 markM=86 markT=markE+markM document.write("Your marks in English is " & markE & "." & "<br />") document.write("Your marks in Mathematics is " & markM & "." & "<br />") document.write("Your total marks is " & markT & ".") </script> </body> </html>
步骤 2) 将文件以 variables.html 的名称保存在您喜欢的位置。现在,在 Internet Explorer 中打开该文件,您的屏幕将是空白的。为什么?因为您使用了 option explicit,但在使用它们之前没有声明变量。
步骤 3) 现在,为了理解 Option Explicit 语句的重要性,请取消注释上面代码中的第 5 行。
步骤 4) 保存 variables.html 文件并刷新您的浏览器。现在,您的输出将如下所示:
注意 – 要连接两个字符串,您需要使用“&”。在上面的示例中,它在 document.write 命令中使用。总分数计算错误是很明显的。现在,只需在 VBScript 代码开头添加第一条语句 Option Explicit(不含 Dim 语句)。
保存文件并查看输出。您将看不到任何输出,这表明您的代码存在错误。这里的错误是,即使指定了 Option Explicit 语句,您也没有在使��之前声明变量。
您还可以使用 public 和 private 关键字声明变量,例如 public student 或 private student。但是,在使用这两个关键字声明变量时必须格外小心,因为它们会改变变量的作用域。
您还可以将多个值存储在单个变量中,这些变量称为VBScript 数组变量。假设您要存储 30 个学生姓名、分数、地址等详细信息。创建和管理 30 个姓名、分数、地址等变量集将非常困难。
相反,您可以声明一个名为 students 的单个变量,并将所有 30 个学生的名字存储在这个变量中。在这种情况下,您将声明变量为 Dim students(29)(数组索引从零开始),并按如下方式赋值:
students(0) = "John" students(1) = "Hannah" students(2) = "Kevin" ....... ....... students(28) = "Rose" students(29) = "Emma"
同样,您可以创建 marks、address 等变量来存储所有 30 个学生的相应值。您还可以创建多维数组,最多可以有 60 个维度。
代码示例
打开您的文本编辑器并添加以下代码行。
<html> <body> <script type="text/vbscript"> Option Explicit Dim students(19), marks(19) students(0) = "John" marks(0) = 95 students(1) = "Emma" marks(1) = "83" students(2) = "Kevin" marks(2) = 87 document.write(students(0) & " has scored " & marks(0) & ".<br />") document.write(students(1) & " has scored " & marks(1) & ".<br />") document.write(students(2) & " has scored " & marks(2) & ".<br />") </script> </body> </html>
这里,我们只存储了三个学生的信息。您可以添加最多 20 个学生的信息,因为我们将数组大小设置为 20(索引从 0 开始)。
VBScript 数据类型
在上一节中,您可能已经注意到我们为变量分配了不同类型的数据。我们存储了数字(mark 和 salary)、字符串(name)等。在不同的变量中。
这些数字、字符串等称为数据类型。事实上,VBScript 只有一种数据类型,称为 Variant。Variant 是一种特殊的数据类型,可以包含不同类型的信息。
如果您在数字上下文中使�� Variant,它表现得像一个数字;当您在字符串上下文中使��它时,它表现得像一个字符串。
换句话说,当您设置 salary=10000 时,VBScript 会假定 salary 是数字数据类型。Variant 会对数据的性质做出特定区分。例如,您可以使用 variant 类型来存储布尔值、货币、日期等。
Variant 可以包含的这些不同的信息类别称为子类型。虽然大多数时候 Variant 的表现方式最适合它包含的数据,但您应该了解不同的子类型。
以下是 VBScript 数据类型列表。
- Empty:一个特殊的子类型,用于表示尚未为变量分配任何值的变量。
- Null:一个特殊的子类型,用于表示已分配 null 值的变量。
- Integer:使用 2 字节表示范围在 -32,768 到 32,767 之间的有符号整数。
- Long:使用 4 字节表示范围在 -2,147,483,648 到 2,147,483,647 之间的有符号整数。
- Single:使用 4 字节表示浮点格式的实数,负值范围为 -3.402823e38 到 -1.401298e-45,正值范围为 1.401298e-45 到 3.402823e38。
- Double:使用 8 字节表示浮点格式的实数,负值范围为 -1.79769313486232e308 到 -4.94065645841247e-324,正值范围为 4.94065645841247e-324 到 1.79769313486232e308。
- Currency:使用 8 字节表示十进制格式的实数,范围在 -922,337,293,685,477.5808 到 922,337,293,685,477.5807。
- Date:使用 8 字节表示日期,范围从公元 100 年 1 月 1 日到公元 9999 年 12 月 31 日。
- String:每字符使用 1 字节表示字符序列,最多可达约 20 亿个字符。
- Object:一个特殊的子类型,用于表示对对象的引用。
- Error:一个特殊的子类型,用于表示错误编号。
- Boolean:使用 2 字节包含 True 或 False。
- Byte:使用 1 字节表示范围在 0 到 255 之间的整数。
有两个内置的VBScript 函数可以帮助您了解变量的子类型:“varType()”和“typeName()”。
varType 返回数字表示,typeName() 返回变量子类型的文本表示。每个子类型都有预定义的数字表示。
代码示例
打开您的文本编辑器并添加以下代码行。
<html> <head> <script type="text/vbscript"> Option Explicit Dim a a = Empty document.write("a = " & a & "<br />") document.write("The numeric representation of a is " & VarType(a) & "<br />") document.write("The variable a is of " & TypeName(a) & " data type." & "<br /><br />") Dim b b = Null document.write("b = " & b & "<br />") document.write("The numeric representation of b is " & VarType(b) & "<br />") document.write("The variable b is of " & TypeName(b) & " data type." & "<br /><br />") Dim c c = 4 document.write("c = " & c & "<br />") document.write("The numeric representation of c is " & VarType(c) & "<br />") document.write("The variable c is of " & TypeName(c) & " data type." & "<br /><br />") Dim d d = -2100483648 document.write("d = " & d & "<br />") document.write("The numeric representation of d is " & VarType(d) & "<br />") document.write("The variable d is of " & TypeName(d) & " data type." & "<br /><br />") Dim e e = -3.402823E38 document.write("e = " & e & "<br />") document.write("The numeric representation of e is " & VarType(e) & "<br />") document.write("The variable e is of " & TypeName(e) & " data type." & "<br /><br />") Dim f f = "John" document.write("f = " & f & "<br />") document.write("The numeric representation of f is " & VarType(f) & "<br />") document.write("The variable f is of " & TypeName(f) & " data type." & "<br /><br />") Dim g g = True document.write("g = " & g & "<br />") document.write("The numeric representation of g is " & VarType(g) & "<br />") document.write("The variable g is of " & TypeName(g) & " data type." & "<br /><br />") </script> </head> <body> </body> </html>
将文件保存为 subtype.html 并在 IE 中打开。您的输出将如下所示:
注意:您还可以使用 **public** 和 **private** 关键字声明变量,例如 public student 或 private student。但是,在使用这两个关键字声明变量时必须格外小心,因为它们会更改变量的作用域。
摘要
- 变量用于在编程时保存值或表达式。变量需要分别声明和初始化。
- 虽然您可以在不声明变量的情况下使用变量,但在使用变量之前声明变量被认为是一种良好的编程实践。
- Variant 是 VBScript 的唯一数据类型,Variant 具有包括 String、Boolean、Integer、Currency 等在内的不同子类型。
故障排除
如果您在运行代码后看到一个空白页面,请执行以下操作:
- 按 F12 打开开发人员工具。
- 在左侧工具栏中向下滚动,直到看到“Emulation”(模拟)设置页面。
- 将 Document Mode(文档模式)从默认值(“Edge”)更改为 10。
- 将以下代码添加到 head 部分。
<meta http-equiv="x-ua-compatible" content="IE=10">