ASP入门基础教程-VBScript概述及基本元素
VBScript是一种脚本语言,也是ASP的默认语言,可以在HTML文件中直接嵌入VBScript脚本,从而扩展HTML,使它不仅仅是一种页面格式语言。带有VBScript脚本的网页可以对用户的操作作出反应。
2、HTML页面中添加VBScript代码
VBSript脚本作为HTML文档的一部分页存在。也就是说,这些代码必须放在HTML文档中才能执行。脚本代码可以放在HTML文档的任何位置,即BODY或HEAD部分之中。通常是将脚本代码集中放在HEAD部分中,这样能确保在BODY部分调用代码之前读取并解码所有脚本代码。
在HTML页面添加VBScript脚本代码时,应以 <script> 标记开始,而以 </script> 标记结束。基本语法格式如下:
<script Languge="脚本语言名称" [event="事件名称"] [For="对象名称"]>
<!--
脚本代码
-->
</script>
SCRIPT标记具有以下3个属性。
(1)Language:指定脚本代码所使用的脚本语言。对于Internet Explorer浏览器来说,该属性的取值可以是“VBScrip"或"JScript",前者可以简写为"VBS"。
(2)EVENT:指定与脚本代码相关联的事件。
(3)FOR:指定与事件相关联的对象。
在上述语法中,之所以将脚本代码嵌入在注释标记<!--和-->之间,是为了避免不能识别SCRIPT标记的浏览器将代码显示在页面中。
注意
SCRIPT标记可以在HTML文档的HEAD和BODY部分出现任意次。
大部分脚本代码放在Sub或Functip过程中,这类代码仅在HTML页面加载时执行一次,可以在加载Web页面时初始化数据或动态地改变页面的外观。
VBScript数据类型
VBScript只有一种数据类型,即Variant,称为变体型。Varriant是一种特殊的数据类型,根据使用的方式,它可以包含不同类别的信息。因为Variant是VBScript中惟一的数据类型,所以它也是VBScript中所有函数的返回值的数据类型。
最简单的Variant可以包含数字或字符串信息。Variant 用于数字上下文中时作为数字处理,用于字符串上下文中时作为字符串处理。也就是说,如果使用看起来像是数字的数据,则VBScript会假定其为数字并以适用于数字的方式处理。与此类似,如果使用的数据只可能是字符串,则VBScript将按字符串处理。也可以将数字包含在引号("")中使其成为字符串。
Variant包含的值信息类型称为子类型。大多数情况下,可将所需的数据放进Variant中,而Variant也会按照最适用于其数据的方式进行操作。
Variant包含的数据子类型
子类型 | 描 述 |
Boolean | 包含True或False |
Byte | 包含0到255之间的整数 |
Currency | -922,337,203,685,477.5808到922,337,203,685,477.5808 |
Long | 包含-2,147,483,648到2,147,483,648整数 |
Single | 包含单精度浮点数,负数范围从-3.402823E38到-1.401298E-45,正数范围从1.401298E-45到3.402823E38 |
Double | 包含双精度浮点数,负数范围从-1.79769313486232E308到-4.94065645841247E-324,正数范围从4.94065645841247E-324到1.79769313486232E308 |
Date(Time) | 包含表示日期的数字,日期范围从公元100年1月1日到公元9999年12月日 |
String | 包含变长字符串,最大长度可为20亿字符 |
Object | 包含对象 |
Error | 包含错误号 |
Integer | 包含32,768到32,767之间的整数 |
VBScript变量与常量
变量是一种使用方便的占位符,用于引用计算机内存地址,该地址可以存储脚本运行时可更改的程序信息。例如,可以创建一个名为ClickCount的变量来存储用户单击Web页面上某个对象的次数。使用变量并不需要了解变量在计算机内存中的地址,只要通过变量名引用变量就可以查看或更必变量的值。在VBScript中只有一个基本数据类型,即Variant,因此所有变量的数据类型都是Variant。
1、变量的命名规则
变量命名必须遵循VBScript的标准命名规则:
第一个字符必须是字母。 不能包含嵌入的句点(.)。 长度不能超过255个字符。 在被声明的作用域内必须惟一。 不能与VBScript的关键词相同。
2、声明变量
在VBScript中,通常使用Dim语句、Public语句和Private语句显式声明变量,并分配存储空间。其语法格式为:
{Dim|Private|Public} <变量名1> [,<变量名2>] [,<变量名3>]...[,<变量名>]
说明:
(1)Public语句声明的变量可用于全部脚本中的所有过程;
(2)用Dim声明的Script级变量可用于脚本中的所有过程,但过程能变量只级用于过程中;
(3)Private语句声明的变量只能在声明该变量的脚本中使用。
(4)声明多个变量时,使用逗号分隔变量。如:Dim a,b,c,d
另一种方式是通过直接在脚本中使用变量名这一简单方式隐式声明变量。这通常不是一个好习惯,因为这样有时会由于变量名被拼错而导致在运行脚本时出现意外的结果。因此,最好使用Option Explicit语句声明所有的变量,并将其作为脚本的第一条语句。(即它必须出现在任何HTML标识或其他VBScript命令之前,否则,该语句将被视为非法语句。
3、变量的作用域与存活期
变量的作用域由声明它的位置决定。如果在过程中声明变量,则只有该过程中的代码可以访问或更改变量值,此时变量具有局部作用域并被称为过程级变量。如果在过程之外声明变量,则该变量可以被脚本中所有过程所识别,称为脚本级变量,具有脚本级的作用域。
变量存在的时间称为存活期。脚本级变量的存活期从被声明的一刻起,直到脚本运行结束。对于过程级变量,其存活期仅是该过程运行的时间,该过程结后,变量随之消失。在执行过程时,局部变量是理想的临时存储空间。在不同过程中可以使用同名的局部变量,是因为每一个局部变量只被声明它的过程识别。
4、给变量赋值
使用赋值语句可以给某个值赋给某个变量,其格式为:
变量名=值 如:RserName="影子"
Password="698726as"
BirthDate=#1975-12-25"
5、标量变量和数组变量
在多数情况下,只需要为声明的变量赋给一个变量值。只包含一个值的变量被称为标量变量。在某些情况下,将多个相关值赋给一个变量更为方便,因此可以创建包含一系列值的变量,称为数组变量。数组变量和标量变量的声明是相似的,惟一的区别是声明数组变量时,变量名后面带有括号()。例如:myWeekDay(6),这是声明了一个包含7个元素的一维数组。
数组并不仅限于一维。数组的维数最大可以为60,声明多维数组时,使用逗号分隔括号中每个表示数组大小的数字。例如:Dim MyTable(5,9),声明了一个6行10列的二维数组。
6、动态数组
也可声明动态数组,即在运行脚本时大小发生变化的数组。对动态数组的最初声明使用Dim语句或ReDim语句。若要使用动态数组,但括号中不能包含数字。必须随后使用ReDim确定维数和每一维的大小。例如:下面的ReDim语句将动态数组的初始大小设为25,而后的ReDim语句将数组的大小重新调整为30,同时使用Preserve关键字在重新调整大小时保留数组的内容。
Dim myArray(25)
......
ReDim AnotherArray(30)
7、简单的应用实例
<html>
<head><title>数组的应用</title>
<script language="VBScript" for="button1" Event="onClick">
Dim myWeekDay(6)
Dim myWeek
myweekDay(0)="星期日"
myweekDay(1)="星期一"
myweekDay(2)="星期二"
myweekDay(3)="星期三"
myweekDay(4)="星期四"
myweekDay(5)="星期五"
myweekDay(6)="星期六"
myWeek=WeekDay(Date)-1
Select Case true
Case myWeek=1
Msgbox "今天是" & myweekDay(1) & ",一周的开始,努力工作哟。"
Case myWeek=2
Msgbox "今天是" & myweekDay(2) & ",还要努力工作哟。"
Case myWeek=3
Msgbox "今天是" & myweekDay(3) & ",继续努力工作哟。"
Case myWeek=4
Msgbox "今天是" & myweekDay(4) & ",还有二天就到周未了,坚持。"
Case myWeek=5
Msgbox "今天是" & myweekDay(5) & ",哈哈,明天是周未。"
Case myWeek=6
Msgbox "今天是" & myweekDay(6) & ",今天可以风狂的玩了。"
Case myWeek=0
Msgbox "今天是" & myweekDay(0) & ",好好休息,明天又是新的一周开始。"
End select
</script>
</head>
<body>
<form name=form1>
<input type="button" name="button1" value="请查看今天是周几">
</form>
</body>
</html>
VBScript运算符
VBScript运算符包括算术运算符,连接运算符、比较运算符和逻辑运算符几种类型。当表达式包含多个运算符时。将按预定顺序计算每一部分,该顺序称为运算优先级。使用运算时按照先括号内后括号外的顺序执行,在括号中仍要遵循标准运算符优先级;优先级相同时按照从左到右的顺序计算。
1、算术运算符
变量命名必须遵循VBScript的标准命名规则:
算术运算符
运算符 | 名称 | 表达式例子 | 运算符 | 名称 | 表达式例子 |
^ | 乘方 | a^b | * | 乘法 | a*b |
/ | 浮点除法 | a/b | 整数除法 | a | |
+ | 加法 | a+b | - | 减法 | a-b |
Mod | 求余的模运算 | a Mod b | - | 取负 | -c |
2、比较运算符
比较运算
运算符 | 描述 | True如果 | False如果 | Null如果 |
< | 小于 | 表达式1<表达式2 | 表达式1>=表达式2 | 表达式1 or 表达式2=Null |
<= | 小于或等于 | 表达式1<=表达式2 | 表达式1>表达式2 | 表达式1 or 表达式2=Null |
> | 大于 | 表达式1>表达式2 | 表达式1<=表达2 | 表达式1 or 表达式2=Null |
>= | 大于或等于 | 表达式1>=表达式1 | 表达式1<=表达式2 | 表达式1 or 表达式2=Null |
= | 等于 | 表达式1=表达式2 | 表达式1<>表达式2 | 表达式1 or 表达式2=Null |
<> | 不等于 | 表达式<>表达式2 | 表达式1=表达式2 | 表达式1 or 表达式2=Null |
Is | 用于对象 | 表达式1 or 表达式2=Null |
3、逻辑运算符
运算符 | 名称 | 例子 | 说明 |
And | 与 | (4>5) And (3<4) | 值为:False,两个表达式的值均为真,结果才为真。 |
Or | 或 | (4>5) or (3<4) | 值为:True,两个表达式中只要一个值为真,结果就为真,只有两个表达式的值均为假,结果才为假。 |
Not | 非 | Not(1>0) | 值为:False,由真变假或由假变真,进行取“反”操作。 |
Xor | 逻辑异或 | 10>8Xor8>6 | 值为“:True,两个表达式的值同为真或假,整个表达式为真,否则为假。 |
4、连接运算符
连接运算符
连接运算符 | & | 字符串连接 | 对两个表达式进行字符串连接。 |
5、运算符的优先级
运算符的优先顺序
优先顺序 | 运算符类型 | 运算符 |
1 | 算术运算符 | ^(指数运算) |
2 | -(负数运算) | |
3 | *、/(乘法和除法) | |
4 | (整数除法) | |
5 | Mod(求余运算) | |
6 | +、-(加法和减法) | |
7 | 连接运算符 | &(字符串连接) |
8 | 比较运算符 | =、<>、<、>、<=、>=、Is |
9 | 逻辑运算符 | Not |
10 | And | |
11 | Or | |
12 | Xor |