Vbscript初步教程.docx

上传人:b****5 文档编号:11896078 上传时间:2023-04-08 格式:DOCX 页数:40 大小:45.10KB
下载 相关 举报
Vbscript初步教程.docx_第1页
第1页 / 共40页
Vbscript初步教程.docx_第2页
第2页 / 共40页
Vbscript初步教程.docx_第3页
第3页 / 共40页
Vbscript初步教程.docx_第4页
第4页 / 共40页
Vbscript初步教程.docx_第5页
第5页 / 共40页
点击查看更多>>
下载资源
资源描述

Vbscript初步教程.docx

《Vbscript初步教程.docx》由会员分享,可在线阅读,更多相关《Vbscript初步教程.docx(40页珍藏版)》请在冰豆网上搜索。

Vbscript初步教程.docx

Vbscript初步教程

第二章Vbscript初步

本章介绍如何使用VisualBasic的Scripting版本(VBScript),它是ActiveSeverPages的缺省脚本语言。

VBScript通过变量,操作符,循环,分支,函数和子例程,扩展了HTML的功能。

通过在HTML网页中嵌入VBScript脚本语言,可以使静态的HTML网页成为动态网页。

Vbscript介绍

VBScript是MicrosoftVisualBasic的简化版本。

VBScript是一种容易学习和使用的脚本语言。

这意味它比BASIC语言的成熟,易上手又难于使用,因为功能较弱。

编制简单的程序时,脚本语言容易使用。

但简单的句法也使开发大程序变得困难。

VBScript是ActiveSeverPages的缺省语言。

也可以在ASP网页中使用其它脚本语言,如Jscript,Perl等等。

考虑到VBScript适合初学者掌握,我们在本章的ASP例子程序都使用VBScript。

客户端和服务器端编程语言

VBScript既可以作为客户端编程语言,也可以作为服务器端编程语言。

客户端编程语言:

可以由浏览器解释执行的语言。

当编制的脚本(程序)被下载到一个兼容的浏览器中时,浏览器将自动执行该脚本。

客户端编程语言的优点:

●浏览器完成所有的工作,减轻服务器的负担。

●客户端程序运行起来比服务器端程序快得多。

当浏览器的用户执行一个操作时,不必通过网络对其作出响应,客户端程序就可以作出响应。

●脚本代码必须用标记对标记嵌入到HTML页面中。

NewDocument

--

dimnum1‘定义变量

IfIsNumeric(num1)Then‘判断是否为数字

Ifnum1<1ornum1>50Then

MsgBox"num1是1到50之外的数字!

"

Else

MsgBox"num1是1到50之间的数字!

"

EndIf

Else

MsgBox"请输入数字!

"

Endif

//-->

客户端脚本部分的注释标记

--和//-->不是必须的,但一般应该加上,因为客户端脚本由浏览器执行,若浏览器不支持该脚本语言,则浏览器将会把代码显示出来(浏览器把脚本代码本身作为HTML页面的内容输出)。

VBScript的客户端脚本,只能在Microsoft的Iexplorer上运行,其他的浏览器大都不支持。

VBScript也可以作为服务器端编程语言。

服务器端编程语言执行站点主机上的所有操作。

服务器端编程语言的优点:

●VBScript脚本在服务器上执行。

不受浏览器的限制,网页通过网络传送给浏览器,Web浏览器收到的只是标准的HTML文件。

●服务器端脚本用分隔符<%和%>包括,或者使用和标记表示脚本在服务器端运行。

我们在以下的讲述中创建的ASP网页,将用VBScript作为服务器端编程语言。

在ActiveSeverPages中使用VBScript

创建可以执行VBScript脚本的网页。

需要把网页文件以后缀名.asp保存。

如果不这样,文件的脚本将不会被服务器解释.

例如:

SimpleVBScript

<%FORXX=1TO10%>

WelcometoUESTC!


<%NEXT%>

该脚本将把“WelcometoUESTC!

”显示10次。

字符对<%和%>的使用。

它们指明脚本的开始和结束。

当Web服务器看到这个特殊字符对时,把它们之间的内容作为脚本解释执行。

例如,文本<%FORXX=1TO10%>和文本<%NEXT%>都是VisualBasic脚本的例子。

这两行结合起来构成了一个10次的循环。

变量或函数的输出

符号对<%=变量或函数%>(可以写成Response.Write变量或函数)

例:

ASP网页中变量的输出:

SimpleVBScript

<%FORXX=1TO10%>

<%=XX%>:

HelloMagic!

<%NEXT%>

表达式<%=XX%>的作用是显示变量XX的值。

在每个“HelloMagic!

”前面有一个数字,该数字代表变量myvar的值。

例:

用<%=和%>数输出函数值。

如下的ASP网页在网页顶部打印当前日期和时间:

SimpleVBScript

Thispagewascreatedon:

<%=Now%>


Haveaniceday!

VBScript函数Now返回当前的系统日期和时间。

当这个文件被Web服务器解释时,Now函数将返回服务器当前时间,并通过<%=Now%>显示出来。

不能把没有返回值的VBScript命令放在符号对<%=和%>之间。

否则,将会产生错误。

<%=FORI=1TO100%>

注意符号对<%和%>与符号对<%=和%>;前者用来指明脚本的开始和结束;另一个用来显示变量和函数的值。

声明变量

变量是计算机内存中已经命名的内存位置,该位置可以存储脚本运行时能更改的信息,在程序中,常用变量来临时存储数据。

在VBScript中,变量命名必须遵循这样的规则:

①变量名必须以字母开头;

②变量名中不能含有句号;

③变量名不能超过255个字符;

④变量名不能和关键字同名;

⑤变量名在被声明的作用域内必须唯一

VBScript变量不区分大小写

变量的声明有两种方式

隐式声明:

在VBScript脚本中,使用变量前不需专门声明。

例如:

SimpleVBScript

<%myvar0=”HelloWorld!

”%>

<%=myvar0%>

在该例中,变量myvar0没有经声明而直接被分配了一个值“HelloWorld!

”,并且这个值被输出到浏览器。

这不会产生错误。

虽然隐式声明很方便,但如果敲错了变量的名字,就会导致错误。

如在程序中将myvar0(数字零)为myvaro(英文小写的o),VBScript遇到新的名字,无法确定到底是隐式声明了一个新的变量或是变量的拼写错误。

只好用新名字创建一个新的变量,而这个新声明的变量的值为EMPTY

所以,在编写长而复杂的程序时,最好先声明变量然后再使用,这样的脚本易于调试。

如果敲错了变量的名字,将会产生错误。

显式声明:

下面的例子演示变量必须先声明后使用:

<%OPTIONEXPLICIT%>

SimpleVBScript

<%

DIMmyvar0

myvar0=”HelloMagic!

%>

<%=myvar0%>

上例中,OPTIONEXPLICIT语句强制所有的变量必须专门声明。

DIM语句声明了变量myvar0。

如果不声明这个变量,将会收到错误信息:

Variableisundefined:

’myvar0’.

用DIM语句可同时声明多个变量,只要把变量名用逗号隔开即可:

DIMx1,x2,x3,x4,xya,bbc

注意:

OPTIONEXPLICIT语句的位置很特殊。

必须把OPTIONEXPLICIT语句作为ASP网页的起始语句之一。

它必须出现在任何HTML标识或其它VBScript命令之前。

否则,该语句将被视为非法语句。

变量子类型

VBScript只有一种数据类型,即Variant类型。

由于Variant类型是VBScript中唯一的数据类型,Variant类型可以在不同场合代表不同类型的数据,Variant是一种特殊的变量类型,它可以代表许多其它类型的变量。

当用DIM语句声明一个变量时,不用为变量定义数据类型。

VBScript中所有变量都是相同的数据类型。

当给一个变量赋值时,variant型变量自动与所赋值的类型保持一致。

参考如下的例子:

<%myvar1=”KeepCatch”%><%=TYPENAME(myvar1)%>

<%myvar2=3%><%=TYPENAME(myvar2)%>

变量myvar1和myvar2被分配了两个不同数据类型的值。

VBScript函数TYPENAME()可以显示该变量代表的实际数据的子类型。

给变量myvar1分配字符串数据“KeepCatch”时,Variant型变量的子类型是string。

给变量myvar2分配整数3时,myvar2的子类型是integer。

变量的数据范围

不同的变量子类型可以代表的数据有不同的范围。

表8.1列出了变量子类型和它们的数据范围的完整信息:

表8.1变量子类型及其数据范围

子类型范围

Byte0到255

BooleanTRUE或FALSE

Integer-32,768到32,767

Long-2,147,483,648到2,147,483,647

Single负数:

-3.402823E38到-1.401298E-45

正数:

1.401298E-45到3.402823E38

Double负数:

-1.79769313486232E308到-4.94065645841247E-324

正数:

4.94065645841247E-324到1.7976931348623eE308

Currency-922,337,203,685,477.5808到922,337,203,685,477.5807

Date1000年1月1日到9999年12月31日

object任何对象的引用

string变长字符串,长度从0个字符到大约20亿个字符

注意string子类型的数据范围非常之大。

可以把整个网页,或者甚至整部小

说保存在一个字符串变量中。

常用的子类型转换函数,见本章的函数部分,可用它们来转换数据的子类型:

空变量和空值变量的讨论

空变量:

声明一个变量后,如果还没有初始化,则该变量的值是EMPTY(为空)。

这个值是自动分配的

当定义了一个变量后,如果尚未给该变量赋值,那么,当该变量参与数值运算时,该变量的值作为0进行运算。

当该变量参与字符串操作时,该变量被作为“”(空字符串)处理。

只要将任何值(0、零长度的字符串、或NULL)赋予变量,变量的EMPTY将会消失。

将变量恢复为空变量,关键字EMPTY赋予变量,如:

myvar=EMPTY

函数ISEMPTY()可以检测一个变量是否为空变量。

如下例所示:

<%

dimmyvar,myvar2

myvar=”HelloMagic!

myvar:

<%=ISEMPTY(myvar)%>

myvar2:

<%=ISEMPTY(myvar2)%>

%>

在例中,检测了两个变量myvar和myvar2,看它们是否为空。

因为myvar已经被分配了一个值,当把变量myvar作为函数ISEMPTY()的参数时,该函数返回FALSE。

而myvar2没有分配数据,因此以myvar2为参数时,函数ISEMPTY()返回TRUE。

空变量与被分配了长度为0的字符串或数字0的变量是不同的。

例如,语句myvar=””和myvar=0都该变量myvar分配了一个值。

在这两种情况下,该变量都不是空的。

只有一个从未被赋过值的变量才是空变量。

空值变量:

如果将关键字NULL赋予变量,则变量不包含任何有效的数据,

如果表达式包含NULL,计算结果总是NULL,

将NULL,含NULL的变量,或计算结果为NULL的表达式作为参数传递给大多数函数,将使函数返回的结果为NULL,

测试方法:

使用函数IsNULL()来测试。

空变量与包含空值的变量是不同的。

一个被分配了空值NULL的变量不是空变量,而是有值NULL。

声明常量

VBScript可以声明常量。

常量与变量有相似之处;但是,一旦声明了一个常量,该常量的值将不能被改变。

使用Const语句在VBScript中创建用户自定义常数。

例:

<%

CONSTPi=3.14159

%>

在例中,常量Pi被分配了值3.14159,因为Pi是一个常量,在和后面的脚本中将不能给再给它分配新值,否则将会出现错误提示。

可以一次定义多个常量,将每个常量定义用逗号隔开。

如下:

<%

CONSTPi=3.14159,SITE_NAME=”www.”

%>

最好采用一个命名方案以区分常数和变量。

这样可以避免在运行Script时对常数重新赋值。

例如,可以使用“vb”或“con”作常数名的前缀,或将常数名的所有字母大写。

将常数和变量区分开可以在开发复杂的Script脚本时避免混乱。

创建和修改数组

固定数组

数组是一个可以存储一组值的变量当需要存储一组相关的值时,。

可以创建数组。

例如:

<%

DIMProduct(10)

Product(0)="aspbook"

Product

(1)="cup"

Producr

(2)="videocard"

%>

在这个例子中,DIM语句用来声明一个数组。

与前面讨论的变量不同,数组在使用之前必须声明。

这个DIM语句声明了一个可以存储11个值的数组。

注意:

VBScript中数组的下标从0开始,每个数组的元素个数都比声明语句中的数字多1。

(用刚才讨论的数组Product,可以存储11个值。

如果向该数组中添加超过11个元素,将发生错误。

声明一个数组后,数组的每一个元素都可以使用惟一的下标来识别,下标用于指明某个数组元素在数组中的位置,例子中,下标为1的数组元素的值是“cpu"。

如果要输出该元素的值,可以用这样的语句:

<%=Product

(1)%>

上例中数组是一个一维数组,作用与一个列表相似。

当然,也可以创建有多维的数组,。

考虑如下的二维数组:

<%

DIMProduct(10,1)

Product(0,0)="aspbook"

Product(0,1)="databasebook"

Product(1,0)="videocard"

Product(1,1)="cpu"

Product(2,0)="coat"

Product(2,1)="cap"

%>

这个脚本中DIM语句创建了一个二维数组。

这个数组的作用类似于表,第一个下标指定行,第二个下标指定列。

使用数组时,并不只限于使用二维数组。

可以声明最大到60维的数组。

要创建一个多维数组,只要简单地在数组声明语句中增加一个维数即可。

例如:

DIMProduct(10,10,10,10)

这个声明创建了一个四维数组,每一维可以存储11个元素。

这意味着这个数组共可以保存14,641个数值(11*11*11*11=14.641)。

可以看到,随着维数的增加,数组的大小增加得很快。

由于在VBScript中,对每个数组元素都要分配内存空间,因此不要不切实际地声明太大的的数组。

动态数组

前面接触的都是固定大小的数组。

这种数组一旦声明了一个固定大小,那么将不能改变数组中的元素个数。

要改变一个固定数组的大小,你必须删除它再重新创建。

不过VBScript提过了一种动态数组。

<%

DIMProduct()在此没有说明数组的大小

REDIMProduct

(2)

Product(0)="aspbook"

Product

(1)="videocard"

Product

(2)="cpu"

REDIMPRESERVEProduct(3)

Product(3)="databasebook"

%>

在例子,DIM语句把数组Product声明为动态数组。

当声明一个动态数组时,不需要指定数组的维数。

但在第一次给一个动态数组分配数值之前,必须使用REDIM语句指定数组的维数。

数组Product首先被创建为只能有三个元素。

接下来,再次使用REDIM语句,增大了这个数组的大小。

该数组被重定义维数以包含四个元素。

这使你可以把值“CoffeeCup"保存在重定义的数组中。

注意第二个REDIM语句中关键字PRESERVE的使用。

当一个数组被重设维数时,使用关键字PRESERVE能使该数组中的内容保留下来。

如果不使用这个关键字,数组将丢失所有数据,产生一个空的数组。

对于多位数组,可以用REDIM语句增加维数,也可以减少维数。

但是,当你删除某一维或减小某一维的大小时,数据将会丢失。

用关键字PRESERVE,只能修改一个多维数组最后一维的大小。

可以增大最后一维,不丢失数据,或减小最后一维,丢失一部分数据。

当然,如果需要增加或减少多维数组的维数,就不能使用PRESERVE关键字,而且进行该操作时无法保存数组中的数据。

这样可以使用REDIM语句扩展或减缩一个数组任意多次。

 

数组函数

UBOUND()

使用数组时,函数UBOUND()返回一个数组的大小。

准确地说,返回的是数组的某一维的大小。

这里有这个函数的一些例子:

<%

DIMProduct(10,33)

%>

<%=UBOUND(Product)%>

<%=UBOUND(Product,1)%>

<%=UBOUND(Product,2)%>

第一个UBOUND()函数返回值是10。

在缺省情况下,这个函数返回的是一个函数的第一维的上界。

第二个UBOUND()函数的返回值与第一个相同。

它返回的是数组Product的第一维的上界。

第三个UBOUND()函数的返回值是33。

这是数组Product的第二维的维数。

当一个数组不是自己声明的,但编程时需要确定数组的大小时,函数UBOUND()是非常有用的。

ISARRAY()

操作数组的一个有用的函数是ISARRAY()。

可以用来测试一个变量表达式是否是一个数组。

例:

<%

DIMProduct(10)

DIMsomevar

%>

<%=ISARRAY(Product)%>

<%=ISARRAY(somevar)%>

在这个例子中,第一个ISARRAY()函数返回TRUE,因为Product实际上是一个数组。

第二个ISARRAY()函数返回FALSE,因为变量somevar没有被声明为一个数组。

ERASE

VBScript的ERASE语句,可以用来操作固定大小的数组和动态数组。

对静态数组:

使用ERASE语句,清空数组的数据。

●数组是一个字符串数组,ERASE语句把该数组的所有元素重新初始化为空字符串。

●数组是一个数值数组,ERASE语句可以把该数组的所有元素重新初始化为0。

如下:

<%

DIMProduct

(2)

Product

(1)="Runningshoes"

ERASEProduct

%>

<%=Product

(1)%>

当这个脚本执行时,不会输出任何信息。

ERASE语句清空了数组Product的所有数据。

对动态数组:

对动态数组使用ERASE语句,会删除数组本身。

当删除了一个数组后,内存就被释放。

在重新使用这个数组之前,必须将该数组重新初始化。

如下例所示:

<%

DIMProduct()

REDIMProduct(100)

Product

(1)="shoes"

ERASEProduct

%>

脚本创建了一个Product的动态数组。

该数组的下标值为1的元素被赋值。

然后,用ERASE语句删除了这个数组。

如果在它被删除后试图访问这个数组的任何元素,将会发生错误。

在再次使用这个数组前,必须用REDIM重新声明该数组。

对一个访问率很高的站点来说,内存是非常珍贵的。

因此当一个动态数组不再需要时,最好使用ERASE语句删除它。

如何在VisualBasic脚本中添加注释

在VBScript中,注释符采用西文单引号“′”,即以撇号作为注释的开始;或用REM注释,可以和语句在同一行并写在语句的后面,也可单独占一行。

<%

REMIamaVBScriptcomment.

‘IamalsoaVBScriptcomment.

%>

在例中,REM和单引号都是用来建立注释的。

这两种注释只能用来注释一行。

用REM语句或撇号建立的注释在一行的末尾结束。

你可以把注释与其它VisualBasic语句写在同一行中:

Web服务器解释VBScript脚本时会略过脚本的注释,不会发送给浏览器。

<%

FORi=1TO100‘startofaloop

myvar=myvar+1‘incrementsmyvar

NEXT‘endofaloop

%>

如何将单行语旬分成多行

有时一条语句可能会很长,这给打印和阅读带来不便,此时可用续行符“-”(一个空格紧跟一个下划线)将长语句分成多行。

空格

<%

strTemp="SARS作为一个不为人知的新型传染病种"&_

"今春SARS突然在中国爆发,给中国民众"&_

"带来了巨大灾难,主要在于人们对SARS"&_

"病毒不了解,使人们措手不及。

但是经过"&_

"这场非典战役后,大家对它有了较为全面"&_

"的认识,特别是对它的病状、传播途径和"&_

"治疗有了较全面的掌握,因此,我们相信"&_

"不可能再爆发象今春那样大规模非典疫情

Response.WritestrTemp

%>

VBScript运算符

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

当表达式包含多个运算符时,将按预定顺序计算每一部分,这个顺序被称为运算符优先级。

可以使用括号越过这种优先级顺序,强制首先计算表达式的某些部分。

运算时,总是先执行括号中的运算符,然后再执行括号外的运算符。

但是,在括号中仍遵循标准运算符优先级。

当表达式包含多种运算符时,首先计算算术运算符,然后计算比较运算符,最后计算逻辑运算符。

所有比较运算符的优先级相同,即按照从左到右的顺序计算比较运算符。

算术运算符和逻辑运算符等的优先级如下所示:

算术运算符

 

比较运算符

 

逻辑运算符

 

连接运算符

描述

符号

描述

符号

描述

描述

求幂

^

等于

=

逻辑非

Not

字符串连接

&

负号

-

不等于

<>

逻辑与

And

字符串连接

+

*

小于

<

逻辑或

Or

/

大于

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 自我管理与提升

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1