VBScript语言特点.ppt_第1页
VBScript语言特点.ppt_第2页
VBScript语言特点.ppt_第3页
VBScript语言特点.ppt_第4页
VBScript语言特点.ppt_第5页
已阅读5页,还剩81页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

VBScript语言特点,编写简单,可用任何文本编辑器编辑保险安全,是受限制的。不能处理对用户计算机上的API调用,不能拥有文件系统之上的控件。可增强客户端功能,降低Web服务器负荷事件驱动机制可用于ASP程序设计,是ASP默认的脚本语言。,在HTML中使用VBScript,VBScript必须嵌入到HTML文档中,才能正常运行用VBScript即可以编写服务端脚本,也可以编写客户端脚本服务端脚本格式1、2、VBScript代码一般情况下都使用第一种方法,第二种方法在global.asa文件中比较常见,示例:,服务器端脚本,示例:,使用标记编写服务器端脚本想知道现在是几点吗?来呀,点我呀!SubTime1response.write北京时间:&now()EndSub,客户端脚本,必须放在和标记之间,格式为:说明:Language:指定所用脚本语言Event:指定与脚本代码相关的事件For:指定与事件相关的对象,示例:,客户端脚本subShowMessagemessage=樱桃好吃树难栽,不下苦功树不开。&_生活中人们想培育成功一种水果都如此艰难不易,&_相比之下想成就一番事业,需要承受的巨大压力和付出的心血和汗水就可想而知了。msgboxmessageendsubCallShowMessage,注意:,Script可以在HTML文档的Head和Body部分出现任意次大部分脚本代码放在Sub或Function过程中,仅在其部分代码要调用它时执行。然而,也可以将脚本代码放在过程之外、Script块中,这类代码仅在HTML页面加载时执行一次,可以在加载Web页面时初始化数据或动态地改变页面的外观。对客户端脚本要放在注释标记之间,是为了避免不能识别Script标记的浏览器将代码显示在页面中。,服务器端脚本和客户端脚本主要区别,服务端脚本在Web服务器上执行,生成相应的HTML页面发送到客户端浏览器中显示。只有服务器端脚本才能实现动态网页。服务器端脚本不受客户端浏览器限制。客户端脚本由浏览器解释执行。由于客户端脚本随HTML页面下载到客户端浏览器,在用户本地执行,因此其执行速度明显快于服务器端脚本。客户端脚本常用于做简单的客户端验证(如:非空验证)或实现网页特效。,在ASP中使用VBScript,ASP是一套服务器端的对象模型,不是一种编程语言,所以,ASP是通过内置对象所提供的方法和属性,可以很容易操作服务器端数据。但在用ASP编程之前,要声明服务器端的脚本语言,来实现动态、交互的网页设计。格式如下:注意:1、该指令必须放在文档的第一行2、在和Language之间要有空格。当然,在一页中是可以指定不同的脚本语言的。,为VBScript脚本添加注释,注释用单引号或Rem语句,注释是不执行代码。示例:,VBScipt脚本的常量,常量是具有一定含义的名称,用于代表数字或字符串。在运行过程中不变的量。保留常量或关键字不能被用作常量名,如:bnCrLf(回车换行符)、vbGreen。语法格式:Const常量名=常量值例:ConstBookname=“ASP数据库系统开发”ConstISBN=“7-115-14688-8”ConstCutoffDate=#2006-05-01#,VBScript脚本的变量,变量是指在执行期间可以变化的量,即可表示不同的数据。变量是内存开辟的一段空间。使用变量不需要了解其内存地址,直接引用即可VBScript中只有一种其本数据类型,即Variant。,变量的命名规则,第一个字符必须是字母不能包含嵌入的的句点长度不能超过255个字符不能使用保留字和关键字在被声明的作用域内必须唯一,变量声明,方法有四种,用dim语句Dim变量名,变量名例:Dimbookid,bookname,cname用OptionExplicit语句为强制显示声明语句。必须放在ASP处理命令之后、任何HTML文本之前。例:,变量声明,方法有四种,用Public语句用于声明全局变量,这些变量在网页中的所有脚本和所有过程都有效。用Private语句用于声明局部变量,其作用范围仅在其定义的脚本体内。即在定义的和标记中使用,变量赋值,格式:变量名=变量值例:Username=“张三”BirthDate=#1980-05-29#WeekWage=50,变量的作用域,指变量的使用范围。有两个范围:过程级变量:在过程里边声明的变量。脚本级变量:在过程外声明的变量。说明:变量的作用域要根据程序设计的需要定义。过程级变量和脚本级变量可以用相同的名称。改变其中的一个值不会改变另一个值。过程级变量在该过程执行结束后即失效,释放内存。,过程级变量示例:,脚本级变量示例:,变量的存活期:,指变量的存在时间。全局变量的存活期从声明起,直到脚本运行结束。过程级变量的存活期是指该过程运行的时间。在不同的过程中可以使用相同的变量名,数组,数组是具有相同名字的一组变量,由不同的下标区分数组中不同的元素。数组用于成批处理数据。数组使用之前需先用Dim定义。数组下标的下界从0开始同一个数组中可以包含各种子类型的数据元素。静态数组:指定义时指定大小和维数的数组。动态数组:在程序运行时数组大小发生变化的数组。,声明数组:,声明静态数组:格式:Dim数组名(第一维上限,第二维上限,)例:DimA(9)DimA(5,11)说明:数组的下限都是0声明动态数组:格式:DimA()ReDimA(第一维上限,第二维上限,)例:DimMyarray()ReDimMyarray(10)ForI=1To10Myarray(I)=INextI,动态数组说明:,动态数组可以多次重定义大小。在用ReDim重定义大小时,会使数组元素原来存储的信息丢失。解决的方法是用关键字Preseve例:DimMyarray()ReDimMyarray(9)ReDimPreseveMyarray(5),数组元素的赋值,数组赋值用=或循环语句,例如:A(0)=12A(1)=15A(2)=“abcd”或ForI=0To10A(I)=I2NextI,用于数组的几个函数:,Lbound函数Ubound函数Join函数Filter函数Split函数Erase函数,Lbound函数,用于测试数组某一维的下界。格式:Lbound(数组名,维数)说明:格式中的维数是1是指数组第一维,是2是指数组第二维,若省略维数则表示第一维。例:Lbound(A,2)Lbound(A),Ubound函数,用于测试数组某一维的上界。格式:Ubound(数组名,维数)说明:格式中的维数是1是指数组第一维,是2是指数组第二维,若省略维数则表示第一维。例:Ubound(A,2)Ubound(A),Join函数,功能是返回一个字符串,这个字符串由数组中各元素连接而成。格式:Join(数组名,分隔符)说明:分隔符用来在返回的字符串中分隔子字符串,省略时用空格分隔,“”为没有分隔符。例:DimA(3)A(1)=“你”A(2)=“好”A(3)=“啊”AA=Join(A)AA变量中数据是:你好啊AA=Join(A,”)AA变量中数据是:你好啊AA=Join(A,”-”)AA变量中数据是:你-好-啊,Filter函数,功能是返回基于零的数组,此数组中数据是基于指定过虑条件的字符串数组的子集。格式:Filter(一维数组名,str,IsInclude,比较类型)说明:Str:在一维数组中要搜索的字符串IsInclude:布尔值,指定返回的子字符串是否包含指定的字符串Str,如果为True则返回的是包含子字符串Str的数组子集,否则将返回不包含子字符串Str的数组字集。比较类型:用来指定字符串比较的方式,值为0表示执行二进制比较,值为1表示执行文本比较,值为2表示执行数据库信息比较。,Filter函数示例:,AA数组是有两个元素的数组,其中AA(0)中数据是Monday,AA(1)中数据是Sundayandmonday,Split函数,功能是返回基于零的一维数组,其中包含指定数目的子字符串。格式:Split(expression,分隔符,count,比较类型)说明:Expression:包含分隔符的子字符串。如果表达式为零长度字符串,则返回空数组。分隔符用于标识字符串界限的字符。如果省略,则使用空格作为分隔符。Count:指定返回的子字符串数目,如果为-1,则返回所有子字符串。比较类型:用来指定比较方式。值为0表示执行二进制比较,值为1表示执行文本比较,值为2表示执行数据库信息比较。,Split示例1:,说明:这时得到的a数组,有10个元素a(0)=0a(1)=1a(2)=2a(3)=3a(4)=4a(5)=5a(9)=9,Split示例2:,thenstr(request.Form(hehe)endiffunctionstr(a)a=split(request(hehe),)fori=0toubound(a)response.Write(a(i)&)nextendfunction%说明:这是由客户端表单传过来的信息,以逗号作为分隔符,于是得到数组a。然后将数组中元素连接起来传回客户端,用以显示一下客户信息,让用户进一步确认一下自己选择或填写得对否。,Erase函数,功能是重新初始化固定大小数组的元素,并释放动态数组的存储间。格式:Erase(数组名)说明:分隔符用来在返回的字符串中分隔子字符串,省略时用空格分隔,“”为没有分隔符。例:DimA(9)DimB()ReDimB(5)EraseA初始化数组AEraseB初始化数组B,运算符和表达式,1、算术运算符:,幂取负-乘法*浮点除法/整除取模Mod加法+减法-连接+或&,注意事项:,幂指数是一个表达式时,指数部分要加括号。整除的操作数是整型数,不进行四舍五入。取模运算是用第一个操作数除以第二个操作数取余数。,2、关系运算符:,等于=不等于小于小于等于=比较对象引用变量Is,3、逻辑运算符:,有:非、与、或、异或、同或,常用内部函数:,1、转换函数:,Cbool(x)将x转换成布尔子类型。Cbyte(x)将x转换成单字节子类型。CDate(x)把x的值转换为日期子类型。CDbl(x)把x的值转换为双精度数。Chr(x)把x值转换为相应的ASCII字符。Cint(x)把x的小数部分四舍五入,转换为整数。CLng(x)把x的值转换为长整型数。CSng(x)把x的值转换为单精度数。Cstr(x)把x值转换为字符串类型。Hex(x)十进制数转换为十六进制数。Int(x)求不大于自变量x的最大整数。Fix(x)浮点数去掉小数部分取整。Oct(x)十进制数转换为八进制数。,2、数学函数:,Sin(x)正弦,x为弧度。Cos(x)余弦,x为弧度。Tan(x)正切,x为弧度。Atn(x)反正切Abs(x)求绝对值。Sgn(x)取符号,正数为1,负数为-1,0为0Sqr(x)取平方根。Exp(x)求ex值Log(x)求lnx值Rnd(x)随机函数:产生一个01之间的单精度随机数。一般要用Randomize语句对随机数发生器初始化。,3、日期和时间函数:,Now是内部变量,返回系统日期和时间Date返回系统日期Time返回系统时间,3、日期和时间函数:,Day(Now)返回当前日,。Month(Now)返回当前月份MonthName(n)将月份代号转换为月份名称例:MonthName(1)结果为:一月Year(Now)返回当前年份参数可以是个日期例:Year(“2008-9-1”)或Year(“2008,9,1”),3、日期和时间函数:,Hour(Now)返回小时(023)Minute(Now)返回分钟(059)Second(Now)返回秒(059)参数可以是时间例:hour(“13:20:34”),3、日期和时间函数:,WeekDay(Now)返回当前星期第几天,星期日为星期的第一天WeekDayName(n)将星期代号转换为星期名称例:WeekDayName(1)结果为:星期日,3、日期和时间函数:,DateAdd增减日期函数格式:DateAdd(日期形式串,增减量,要增减的日期变量)例如:DateAdd(“yyyy”,1,“2008-9-1”)结果是2009-9-1DateAdd(“q”,1,“2008-9-1”)结果是2008-12-1DateAdd(“ww”,1,“2008-9-1”)结果是2008-9-8日期格式有:“yyyy”表示年,“q”表示季,“m”表示月,“ww”表示周,“d”表示日,“h”表示时,“n”表示分,“s”表示秒,“y”表示一年的天数,“w”表示一周的天数,4、字符串函数:,(1)删除空白字符函数:Ltrim(字符串)去掉“字符串”左边的空格Rtrim(字符串)去掉“字符串”右边的空格Trim(字符串)去掉“字符串”两边的空格,4、字符串函数:,(2)字符串截取函数:Left(字符串,n)左部截取n个字符Mid(字符串,p,n)从第p个字符开始,向右截取n个字符Right(字符串,n)右部截取n个字符,4、字符串函数:,(3)字符串长度测试函数:格式:Len(字符串)测试字符串的长度Len(变量名)测试变量的存储空间,4、字符串函数:,(4)Asc(str)函数:功能:返回第一个字符的ASCII符号。,4、字符串函数:,(5)空格函数:格式:Space(n)说明:返回n个空格举例:AA=“A”&Space(4)&”B”,4、字符串函数:,(6)字符串匹配函数:格式:InStr(首字符位置,字符串1,字符串2,n)功能:测试“字符串1”中是否包含“字符串2”。如果是,则返回“字符串2”的第一个字符在“字符串1”中的位置。说明:“字符串2”的长度必须小于65535个字符。函数返回值是一个长整型数。参数“首字符位置”是可选的。如果有,则从这个首字符位置开始查找;如果没有,则从“字符串1”的第一个字符开始查找。参数“n”是可选的,是一个整型数,用来指定字符串比较方式。有三个取值:取0时,表示按二进制进行比较,区分大小写;取1时,表示按原文比较,不区分大小写;取2时,表示在Access数据库中进行信息比较。,举例:,A=“MicrosoftVisualBasic”X=InStr(A,“Visual”)则X值是11,4、字符串函数:,(7)字母大小写转换函数:格式:,Ucase$(字符串)转换成大写字母Lcase$(字符串)转换成小字字母,4、字符串函数:,(8)InStrRev(start,str1,str2,method):功能:返回字符串中从尾部开始搜索某子串str2在str1字符串中第一次出现的位置。,4、字符串函数:,(9)InSomp(str1,str2,method):功能:返回两个字符串的比较结果。如果字符串str1小于字符串str2,则返回-1;如果字符串str1大于字符串str2,则返回1;如果字符串str1等于字符串str2,则返回0;如果字符串str1和字符串str2中任何一个为空值Null,则返回Null。参数method表示比较方式,0表示二进制比较,1表示文字比较。,6、数据类型判断函数:,IsArray(var)判断表达式var是否为一个数组。IsDate(var)判断表达式var是否可以转化为日期型。IsEmpty(var)判断表达式var是否已经被初始化。IsNull(var)判断表达式var是否为空。IsNumber(var)判断表达式var是否为数字。IsObject(var)判断表达式var是否为对象。VarType(var)返回指定变var类型。,表达式的执行顺序:,(1)首先执行函数运算;(2)接着执行算术运算;(3)然后执行关系运算;(4)最后执行逻辑运算;,几点说明:,括号内的运算总是优先括号外的运算;当幂和负号相邻时,负号优先。例:4-2,VBScript过程:,过程有两种:Sub过程和Function格式:Sub过程名(参数表)EndSub和Function过程名(参数表)EndFunction两种过程的区别是Sub过程不返回值,Function当函数使用,能返回值。,定义Sub过程(形式参数):,SubAA(x,y)Z=xyEndSub,调用Sub过程,有两种方法:,(1)用Call语句调用Sub过程。格式:Call过程名(实际参数)(2)直接把过程名作为一个语句使用。说明:使用Call语句时,如果带有实参,要有括号;例:CallAA(a,b)直接用过程名作为一个语句时,实参不能用括号括起来。例:AAa,bSub过程调用时不直接返回值。,定义Function过程,Function过程名(参数表)As类型语句块EndFunction说明:调用Function过程可以返回值,可以像使用内部函数那样调用。,形参与实参,形参:是在Sub、Function过程的定义中出现的变量名。实参:是在调用Sub、Function过程时传送给Sub或Function过程的常数、变量、表达式或数组。参数表中各项参数之间用逗号隔开。,程序控制结构语句:,条件判断语句又称选择结构。主要有以下两种:IfThenElseSelectCase循环语句主要有以下三种:DoLoopForNextWhileWend,一、选择控制结构,1、IfThenElse语句:,IfThenElse根据条件的判断,来决定执行哪一条语句。基本语法为:IfThenElseIfThen:ElseEndIf,解释,这段语句的功能为先判断的值是否是True,若是True,则执行;否则,若的结果为True,则执行如果所有条件都不成立,则执行Else后面的。,注意事项:,If语句若不在一行中书写,If与EndIf必须成对使用。当执行完一个分支后,即退出,不再执行其它分支。ElseIf不能写成ElseIf。如果使用If语句的嵌套,不能出现交叉。,2、SelectCase语句:(情况语句),当条件表达式仅有一个测试变量时,使用SelectCase结构比IfThenElse更有效且更简便。其语法结构为:SelectCaseCaseCase:CaseElseEndSelect这段语句的功能为判断测试变量的值与哪一个结果值相同,若与某个结果值相同,则执行此结果值后的程序代码,若都不同,则执行CaseElse后的程序代码。测试变量的类型与结果值的类型必须一致。,说明:,变量或表达式:可以是数值表达式或字符表达式。表达式可以是:Case1To10表达式可以是:Case2,4,6,8,Is10在枚举表达式中要用逗号隔开。,二、循环控制结构,1、DoLoop语句:,对于事先不知道重复执行次数的循环操作,使用Do循环是最方便、最有效的。其语法格式根据不同需要有四种,其中第一种是最常用的。,形式之一:,DoWhileLoop说明:执行过程是首先判断表达式的值是否为True。若不是,则退出循环,执行Loop后面的语句。若是True,则执行循环代码,当执行到Loop语句时,返回到DoWhile语句,继续判断条件表达式的值是否为True,如此反复执行,直到条件表达式的值为False才退出循环。,使用本循环应注意以下问题:,DoWhile和Loop应成对出现。条件表达式应是逻辑型。循环代码中要有控制循环的语句,以避免出现死循环。允许程序代码中嵌套判断或循环语句,但注意层次分明,避免错误的交叉嵌套。,形式之二:,DoLoopWhile执行过程是首先执行循环体内的语句代码,遇到LoopWhile语句则判断条件是否成立,成立则返回到循环的开始语句,再次执行循环体,这样一直到While条件不成立时才退出循环。它与DoWhile循环语句的区别在于DoWhile循环先测试条件是否成立,只有条件成立才执行循环,而本循环语句则先执行循环体,然后才测试循环条件是否成立

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论