超级保镖抢先版:VBScript简介-VBScript教程 网页教程与代码演示 站长书库 中国站长站 bo...

来源:百度文库 编辑:九乡新闻网 时间:2024/05/07 18:46:33

VBScript简介

学习VBScript之前

学习 VBScript 之前,应具备HTML和CSS的知识,以保证你能够熟练地编写网页。有关 HTML 教程,CSS 教程,请参见 HTML教程,CSS教程。

VBScript简介

VBScript 是一种脚本语言,可以用于微软 IE 浏览器的客户端脚本和微软 IIS (Internet Information Service) 的服务器端脚本。 

VBScript 是微软编程语言 Visual Basic 家族中的一个成员。如果你熟悉微软的 Visual Basic 或者 Visual Basic for Applications,你会很快就熟悉 VBScript。

简单的 VBScript 入门示例

现在我们就写一个简单的 VBScript 的例子。

一个简单的VBScript代码示例

你会看到一个消息框,在此行文字显示之后弹出。

演示示例

在网页中插入VBSscript语句,应使用其中的为VBScript语句。

 

在参考别人的 VBScript 代码时,你也许会看到里的代码是VBScript。其中 language这个属性在 W3C 的 HTML 标准中,已不再推荐使用。  

VBScript写在哪里

VBScript程序可以写在:

  • 网页的里
  • 网页的里

VBScript 在 Head 中

以下是一个 VBScript 代码放在 Head 中的示例:

VBScript代码放在Head中的示例

你会看到一个消息框,在此行文字之前显示。

演示示例

VBScript 在 Body 中

以下是一个 VBScript 代码放在 Body 中的示例:

VBScript代码放在Body中的示例

你会看到一个消息框,在此行文字显示之后弹出。

演示示例

 

VBScript 可以放在网页的任何地方(Body 或 Head)中。不过最好尽可能将所有的脚本代码放在 Head 部分里,以使所有脚本代码集中放置。而且可以确保调用脚本代码之前,所有的脚本代码都已经被读取并解码。 

VBScript变量

VBScript变量

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

声明变量

在使用一个变量之前,首先要声明这个变量。VBScript 里,使用 Dim, Public, Private 来声明变量。

如:

Dim a

你也可以同时声明多个变量,使用逗号分隔变量。如:

Dim a, b, c, d

以下是个简单的示例:

演示示例

给变量赋值

给变量赋值的表达式为:变量在表达式左边,要赋的值在表达式右边。如:

b = 30

 

VBScript变量命名规则

  • 第一个字符必须是字母。
  • 不能包含句号(.)字符。
  • 长度不能超过 255 个字符。
  • 在被声明的作用域内必须唯一。

 

标量变量(Scalar Variables)和数组变量(Array Variables)

多数情况下,只需为声明的变量赋一个值。只包含一个值的变量被称为标量变量 (Scalar Variables)。

但有些时候,将多个相关值赋给同一个变量会使程序更加简便,因此可以创建一个包含一系列值的变量,称为数组变量 (Array Variables)。

数组变量和标量变量是以相同的方式声明的,唯一的区别是声明数组变量时变量名后面带有括号 ( )。下面的例子表示声明了一个包含 11 个元素的一维数组:

 Dim A(10)

虽然括号中显示的数字是 10,但由于在 VBScript 中所有数组下标都是基于 0 的,所以这个数组实际上包含 0 到10 的 11 个元素。在基于 0 的数组中,数组元素的数目总是等于括号中显示的数目加 1。

用数组变量名称加上小括号,小括号里面写数组元素的下标,就可以引用数组中的某个特定的元素。

如给下标为0的数组元素赋值:

A(0) = 10

 

下面的VBScript代码示例主要功能有两部分:

  • 给arSites(3)这个数组变量的每个元素赋值;
  • 依次显示该数组变量的每个元素值。
VBScript代码示例-数组变量(Array Variables)
演示示例 

VBScript运算符

VBScript运算符

VBScript 有一套完整的运算符,包括算术运算符、比较运算符、连接运算符和逻辑运算符。

算术运算符

运算符符号 运算符描述 ^ 求幂,计算数的指数次方 - 负号 * 乘 / 除 \ 两个数相除并返回以整数形式表示的结果 Mod 两个数值相除并返回其余数 + 加 - 减

连接运算符

运算符符号 运算符描述 & 字符串连接

比较运算符

运算符符号 运算符描述 = 等于 <> 不等于 < 小于 > 大于 <= 小于等于 >= 大于等于 Is 比较两个对象引用变量

逻辑运算符

运算符符号 运算符描述 Not 非 And 与 Or 或 Xor 异或 Eqv 等价 Imp 隐含

运算符的优先级

当表达式包含多个运算符时,将按预定顺序计算每一部分,这个顺序被称为运算符优先级。可以使用括号越过这种优先级顺序,强制首先计算表达式的某些部分。运算时,总是先执行括号中的运算符,然后再执行括号外的运算符。但是,在括号中仍遵循标准运算符优先级。

当表达式包含多种运算符时,首先计算算术运算符,然后计算比较运算符,最后计算逻辑运算符。所有比较运算符的优先级相同,即按照从左到右的顺序计算比较运算符。

算术运算符和逻辑运算符的优先级如上所示。

当乘号与除号同时出现在一个表达式中时,按从左到右的顺序计算乘、除运算符。同样当加与减同时出现在一个表达式中时,按从左到右的顺序计算加、减运算符。

字符串连接 (&) 运算符不是算术运算符,但是在优先级顺序中,它排在所有算术运算符之后和所有比较运算符之前。Is 运算符是对象引用比较运算符。它并不比较对象或对象的值,而只是进行检查,判断两个对象引用是否引用同一个对象。 

VBScript条件语句

使用VBScript条件语句控制程序流程

在一般情况下,程序语句的执行是按照其书写顺序来执行的。前面的代码先执行,后面的代码后执行。但是这种简单的自上而下的单向流程只适于用一些很简单的程序。大多数情况下,需要根据逻辑判断来决定程序代码执行的优先顺序。要改变程序代码执行的先后顺序,任何编程语言都需要用到条件语句和循环语句。

这一节我们主要介绍条件语句。

VBScript 条件语句有:

  • If...Then...Else 条件语句
  • Select Case 条件语句

使用 If...Then...Else 条件语句进行判断

条件为 True 时运行语句

当 If 条件为 True 时,即当符合 If 条件时,执行 If 至 End If 之间的脚本。下面是个简单示例,请注意此例省略了关键字 Else:

演示示例

条件为 True 和 False 时分别运行某些语句

可以使用 If...Then...Else 语句定义两个可执行语句块:条件为 True 时运行某一语句块,条件为 False 时运行另一语句块。

演示示例

对多个条件进行判断

If...Then...Else 语句的一种变形允许你从多个条件中选择,即添加一个或多个 ElseIf 子句以扩充 If...Then...Else 语句的功能,使你可以控制基于多种可能的程序流程。例如:

演示示例

可以添加任意多个 ElseIf 子句以提供多种选择。使用多个 ElseIf 子句经常会变得很累赘。在多个条件中进行选择的更好方法是使用 Select Case 语句。

使用 Select Case 条件语句进行判断

Select Case 结构提供了 If...Then...ElseIf 结构的一个变通形式,可以从多个语句块中选择执行其中的一个。Select Case 语句提供的功能与 If...Then...Else 语句类似,但是可以使代码更加简练易读。

Select Case 结构在其开始处使用一个只计算一次的简单测试表达式。表达式的结果将与结构中每个 Case 的值比较。如果匹配,则执行与该 Case 关联的语句块,示例代码如下:

演示示例

请注意 Select Case 结构只计算开始处的一个表达式(只计算一次),而 If...Then...ElseIf 结构计算每个 ElseIf 语句的表达式,这些表达式可以各不相同。仅当每个 ElseIf 语句计算的表达式都相同时,才可以使用 Select Case 结构代替 If...Then...ElseIf 结构。 

VBScript循环语句

使用 VBScript 循环语句

循环用于重复执行一组语句。循环可分三类:

  • 在条件变为 False 之前重复执行语句。
  • 在条件变为 True 之前重复执行语句。
  • 按照指定的次数重复执行语句。

在 VBScript 中可使用下列循环语句:

  • Do...Loop :当 (或直到)条件为 True 时循环。
  • While...Wend :当条件为 True 时循环。
  • For...Next :指定循环次数,使用计数器重复运行语句。
  • For Each...Next :对于集合中的每项或数组中的每个元素,重复执行一组语句。

使用 Do 循环语句

可以使用 Do...Loop 语句多次(次数不定)运行语句块。当条件为 True 时或条件变为 True 之前,重复执行语句块。

当条件为 True 时重复执行语句

While 关键字用于检查 Do...Loop 语句中的条件。有两种方式检查条件:在进入循环之前检查条件(Do While...Loop );或者在循环至少运行完一次之后检查条件(Do...Loop While)。

Do While...Loop 示例:

演示示例

Do...Loop While 示例:

演示示例

重复执行语句直到条件变为 True

Until 关键字用于检查 Do...Loop 语句中的条件。有两种方式检查条件:在进入循环之前检查条件(Do Until...Loop);或者在循环至少运行完一次之后检查条件(Do...Loop Until)。只要条件为 False,就会进行循环。

Do Until...Loop 示例:

演示示例

Do...Loop Until 示例:

演示示例

退出循环

Exit Do 语句用于退出 Do...Loop 循环。因为通常只是在某些特殊情况下要退出循环(例如要避免死循环),所以可在 If...Then...Else 语句的 True 语句块中使用 Exit Do 语句。如果条件为 False,循环将照常运行。

在下面的示例中,myNum 的初始值将导致死循环。If...Then...Else 语句检查此条件,防止出现死循环。

演示示例

使用 While...Wend 循环语句

While...Wend 语句是为那些熟悉其用法的用户提供的。但是由于 While...Wend 缺少灵活性,所以建议最好使用 Do...Loop 语句。

使用 For...Next 循环语句

For...Next 语句用于将语句块运行指定的次数。在循环中使用计数器变量,该变量的值随每一次循环增加或减少。以下是个简单示例:

演示示例

关键字 Step 用于指定计数器变量每次增加或减少的值。在下面的示例中,计数器变量 j 每次加 2。循环结束后,total 的值为 2、4、6、8 和 10 的总和。

演示示例

要使计数器变量递减,可将 Step 设为负值。此时计数器变量的终止值必须小于起始值。在下面的示例中,计数器变量 myNum 每次减 2。循环结束后,total 的值为 16、14、12、10、8、6、4 和 2 的总和。

 Sub NewTotal()
     Dim myNum, total
     For myNum = 16 To 2 Step -2
         total = total + myNum
     Next
     MsgBox "总和为 " & total & "。"
 End Sub

Exit For 语句用于在计数器达到其终止值之前退出 For...Next 语句。因为通常只是在某些特殊情况下(例如在发生错误时)要退出循环,所以可以在 If...Then...Else 语句的 True 语句块中使用 Exit For 语句。如果条件为 False,循环将照常运行。

 

VBScript过程

在 VBScript 中,过程分为两类:Sub 过程和 Function 过程。

Sub 过程及其调用

Sub 过程是包含在 Sub 和 End Sub 语句之间的一组 VBScript 语句,执行操作但不返回值

Sub 过程可以使用参数 (由调用过程传递的常数、变量或表达式)。如果 Sub 过程无任何参数,则 Sub 语句必须包含空括号 ()。

下面的代码示例是一个不带任何参数的 Sub 过程,弹出一个消息框,显示"欢迎来到站长站 站长书库 站长网页教程网站 book.chinaz.com/html"。

Sub myProc()
  msgbox("欢迎来到站长站 站长书库 站长网页教程网站 book.chinaz.com/html")
End Sub

演示示例

下面的代码示例是一个带有两个参数的 Sub 过程,弹出一个消息框,显示两个参数的乘积值。

 Sub myMulti(no1, no2)
     MsgBox (no1*no2)
 End Sub

演示示例

调用 Sub 过程时,只需输入过程名及所有参数值,参数值之间使用逗号分隔。

另外一种调用方法,就是使用 Call 语句,但如果使用了 Call 语句,则必须将所有参数包含在括号之中。

下面的示例显示了调用 myMulti 过程的两种方式。一种使用 Call 语句;另一种则不使用。两种方式效果相同。

Call myMulti(8,9)
myMulti 8,9

不用 Call 语句调用 Sub 过程的演示示例

用 Call 语句调用 Sub 过程的演示示例

注意:当不使用 Call 语句进行调用时,括号被省略。使用 Call 语句时,要用括号包含所有参数。

Function 过程及其调用

Function 过程是包含在 Function 和 End Function 语句之间的一组 VBScript 语句。Function 过程与 Sub 过程类似,但是 Function 过程可以返回值

Function 过程可以使用参数 (由调用过程传递的常数、变量或表达式)。如果 Function 过程无任何参数,则 Function 语句必须包含空括号 ()。Function 过程通过函数名返回一个值,这个值是在过程的语句中赋给函数名的。Function 返回值的数据类型总是 Variant。

下面的代码示例是一个带有参数的 Function 过程,该 Function 过程的返回值是两个参数的乘积。

Function myMulti(no1, no2)
  myMulti = no1*no2
End Function

演示示例

调用 Function 过程时,函数名必须用在变量赋值语句的右端或表达式中。比如:

vNo = myMulti(8,9) + 100
MsgBox  myMulti(8,9)

 

过程的数据进出

给过程传递数据的途径是使用参数。参数名可以是任何有效的变量名。使用 Sub 语句或 Function 语句创建过程时,过程名之后必须紧跟括号。括号中包含所有参数,参数间用逗号分隔。

要从过程获取数据,必须使用 Function 过程。请记住,Function 过程可以返回值;Sub 过程不返回值