From,吴教育
Email,wujiaoyu@21cn.com
Q Q,188128997
WEB开发技术 第二章
2.1 VBS基本语法
本章内容与教学安排
理论,6学时
实验,4学时
2.1 VBS基本语法
2.2 VBS基本语句
2.2 VBS重要函数
课程引入与回顾
? 可以使用下列语言来创建动态网页 。
– 基于服务器的脚本
– 客户端脚本
– 动态 HTML
? ASP 是一项技术,可以为 Web 服务器提供
处理应用程序逻辑并将标准的 HTML 返回
到浏览器的能力。
? ASP环境与入门知识,尤其是 ASP运行环境
的配置与 ASP程序运行调试要点。
目标
? Vbscript 是 ASP的编程基础,本章主要介绍
VBScript的基本语法,以及 VBScript的一
些重要的使用。
2.1 VBScript编程基础
动态 HTML的一个重要特征是可以通过编程来实
现对网页中相关元素的控制。有二种脚本语言可
用于实现此类功能( VBs,javascript),其中 VBS与
VB的语法非常类似,JAVASCript与 JAVA语法类
似( C语言)。 SCRIPT 元素用于将 VBScript 代
码添加到 HTML 页面中。
一、基本格式
1.<SCRIPT> 标记
VBScript 代码写在成对的 <SCRIPT> 标记之间。
例如,计算一个日期与现在的时间简隔:
<%@ Language=VBScript %>
<HTML>
<HEAD>
<META name=VI60_defaultClientScript content=VBScript>
<META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0">
</HEAD>
<BODY>
<SCRIPT LANGUAGE=vbscript RUNAT=Server>
function diffdate1(dt)
diffdate1=cdate(dt)-now()
end function
</SCRIPT>
<P>&nbsp;</P>
<%
Response.Write cdate("2001-10-10")-now() & "<br>"
Response.Write diffdate1("2001-10-10") & "<br>"
%>
</BODY>
</HTML>
说明
(1)代码的开始和结束部分都有 <SCRIPT> 标记。
LANGUAGE 属性用于指定所使用的 Script 语言。
由于浏览器能够使用多种 Script 语言,所以必须
在此指定所使用的 Script 语言。
(2)语言名称可加双引号,VBScript可简写为 VBS.
(3) diffdate1 函数被嵌入在注释标记( <!-- 和 -->)
中。这样能够避免不能识别 <SCRIPT> 标记的浏
览器将代码显示在页面中。有时可以省略 。
2,HTML语言中调用 VBS的三种方法
(1)用对象名加事件作为过程的定义方法, 2_1.asp
(2)在 Script标记中定义过程。 2_2.asp
(3) 利用事件调用过程(过程方式)。 2_3.asp
二,VBS的变量和运算符
声明变量,dim,javascript 为 var,其类
型为变体型。
不要写 dim x as integer,变量可通过置
初值来设定其类型,还可以在其后改
为其他类型。
示例(如 asp2_1.asp)
<%@ Language=VBScript %>
<HTML>
<HEAD>
<META name=VI60_defaultClientScript content=VBScript>
<META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0">
<SCRIPT ID=clientEventHandlersVBS LANGUAGE=vbscript>
<!--
Sub button1_onclick
x=x & "abcd"
text1.value=x
End Sub
-->
</SCRIPT>
</HEAD>
<BODY>
<P><INPUT id=text1 name=text1><INPUT id=button1 name=button1 type=button value=Button></P>
<SCRIPT LANGUAGE=vbscript>
<!--
dim x ‘这里的 X是一个全局变量
x=3
text1.value=x
x="abcd"
-->
2,变量说明
变量的命名规则,第一个是字母,不可以
是中文字
vartype()函数,返回表示变量子类型的
数值。如 vartype(x)
3.数组
? 数组, dim mytable(5,10) 下标从 0开始,
再如 Dim A(1 To 100,0 To 3,-3 To 4)
LBound 函数与 UBound 函数一起使用,用来确
定一个数组的大小。 UBound 用来确定数组某一
维的上界。
对具有下述维数的数组而言,LBound 的返回值
见下表:
Dim A(1 To 100,0 To 3,-3 To 4)
4,常数
const mystring=”这是一个字符串”
const myage=49
const cutoffdate=#6-1-97#
5,运算符
VBS的数据类型 ——Variant 子类型
下表显示 Variant 包含的数据子类型:
您可以使用 转换函数 来转换数据的子类型。另外,
可使用 VarType 函数返回数据的 Variant 子类型。
什么是变量?
变量是一种使用方便的占位符,用于引用计算机内存地址,
该地址可以存储 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) 重
新调整动态数组大小的次数是没有任何限制的,但是应注意:
将数组的大小调小时,将会丢失被删除元素的数据。
什么是常数?
常数 是具有一定含义的名称,用于代替数字或字符串,其值
从不改变。 VBScript 定义了许多 固有常数 。详细信息,请
参阅 VBScript 语言参考 。
创建常数
您可以使用 Const 语句在 VBScript 中创建用户自定义常数。
使用 Const 语句可以创建名称具有一定含义的字符串型或数
值型常数,并给它们赋原义值。
例如:
Const MyString =,这是一个字符串。, Const MyAge = 49
请注意字符串文字包含在两个引号 (,”) 之间。这是区分字
符串型常数和数值型常数的最明显的方法。
日期文字 和时间文字包含在两个井号 (#) 之间。
例如:
Const CutoffDate = #6-1-97#最好采用一个命名方案以区分
常数和变量。这样可以避免在运行 Script 时对常数重新赋
值。例如,可以使用,vb”或,con”作常数名的前缀,或将
常数名的所有字母大写。将常数和变量区分开可以在开发复
杂的 Script 时避免混乱。
运算符优先级
当表达式包含多个运算符时,将按预定顺序计算每一部分,
这个顺序被称为运算符优先级。可以使用括号越过这种优先
级顺序,强制首先计算表达式的某些部分。运算时,总是先
执行括号中的运算符,然后再执行括号外的运算符。但是,
在括号中仍遵循标准运算符优先级。
当表达式包含多种运算符时,首先计算算术运算符,然后计
算比较运算符,最后计算逻辑运算符。所有比较运算符的优
先级相同,即按照从左到右的顺序计算比较运算符。算术运
算符和逻辑运算符的优先级如下所示:
说明
当乘号与除号同时出现在一个表达式中时,按从左到右的顺
序计算乘、除运算符。同样当加与减同时出现在一个表达式
中时,按从左到右的顺序计算加、减运算符。
字符串连接 (&) 运算符不是算术运算符,但是在优先级顺序
中,它排在所有算术运算符之后和所有比较运算符之前。 Is
运算符是对象引用比较运算符。它并不比较对象或对象的值,
而只是进行检查,判断两个对象引用是否引用同一个对象。
总结
? Vbscript的基本格式
? 变量、数组、常数
? 运算符优先级