版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第3章VBScript脚本语言
3.1VBScript概述
3.2VBScript的基本数据类型及输入输出
3.3VBScript的表达式和运算符
3.4VBScript的控制结构
3.5VBScript的函数和子过程
3.6VBScript的内部库函数
3.7VBScript的对象和事件
3.8VBScript纠错处理
1《ASP程序设计》第3章VBScript脚本语言3.1VBScrip3.1VBScript概述
3.1.1VBScript概述3.1.2VBScript与JavaScript3.1.3VBScript脚本类型3.1.4VBScript实例2《ASP程序设计》3.1VBScript概述3.1.1VBScrip3.1VBScript概述静态网页的功能有很大的局限性,因此具有强大的交互能力的动态网页得到了广泛的流行。VBScript是目前进行动态网页开发中必不可少的一种脚本语言。3《ASP程序设计》3.1VBScript概述静态网页的功能有很大的局限性,因3.1.1VBScript概述
HTML语言编写的网页是一种静态文档。脚本语言和HTML标记一起编写动态网页,这种网页可以被服务器执行。脚本语言是介于HTML和Java、VisualBasic等编程语言之间的语言,可使用任何文本编辑器编写,保存为纯ASCII文本文件。目前比较流行的脚本语言主要有两种,即VBScript和JavaScript。4《ASP程序设计》3.1.1VBScript概述HTML语言编写的网页是3.1.2VBScript与JavaScript在IIS中设定。在网页中指定脚本语言<%@LANGUAGE=VBScript%>或<%@LANGUAGE=VBScript%>利用<Script>设定脚本语言,例如:<Scriptlanguage="Vbscript">
ASP中的缺省语言是VBScript。脚本语言的设置方法主要有:5《ASP程序设计》3.1.2VBScript与JavaScript在IIS3.1.3VBScript脚本类型
1.客户端脚本客户端脚本由浏览器解释执行。<SCRIPTLANGUAGE="language"[EVENT="event"][FOR="object"]><!--
脚本代码--></SCRIPT>
LANGUAGE:指定使用哪一种脚本语言EVENT:指定与此段脚本相关联的事件FOR:指定与事件相关联的对象6《ASP程序设计》3.1.3VBScript脚本类型1.客户端脚本3.1.3VBScript脚本类型2.服务器端脚本在Web服务器上执行,由服务器根据脚本的执行结果生成相应的HTML页面并发送到客户端浏览器中并显示,不受浏览器的限制。
<SCRIPTLANGUAGE=VBScriptRUNAT=server><!—
脚本代码--></SCRIPT><%VBScript脚本程序片段%>
7《ASP程序设计》3.1.3VBScript脚本类型2.服务器端脚本<SC3.1.4VBScript实例
8《ASP程序设计》3.1.4VBScript实例8《ASP程序设计》3.2基本数据类型及输入输出
3.2.1简单编程约定3.2.2基本数据类型及其子类型3.2.3变量3.2.4常量3.2.5数组3.2.6基本输入输出9《ASP程序设计》3.2基本数据类型及输入输出3.2.1简单编程约定3.2.1简单编程约定1.程序中的层次感和注释一般格式为:格式一:Rem注释内容格式二:′注释内容或语句′注释内容两种表现形式:通过使用Rem语句采用西文单引号“′”10《ASP程序设计》3.2.1简单编程约定1.程序中的层次感和注释一般格式为3.2.1简单编程约定2.单行文本转成多行使用续行符“-”(由一个空格和一个下划线组成),将长的语句分成多行书写。3.使用不同进制的数字在VBScript中,可以用默认的十进制来表示数字,还使用十六进制或八进制来表示数字。11《ASP程序设计》3.2.1简单编程约定2.单行文本转成多行使用续行符“3.2.2基本数据类型及其子类型
VBScript只有一种特殊的数据类型,即变体(Variant)数据类型,它可以随着变量被使用方式的不同而包含不同的数据信息,会根据不同的应用环境,将变量区别对待。由变体类型引申出来的类型称为子类型。
12《ASP程序设计》3.2.2基本数据类型及其子类型VBScript只有一种3.2.3变量变量是指计算机中用来表示内存位置的一种符号,在内存中存储着程序所需的各种数据,脚本执行时这个内存中的数据可以改变。
13《ASP程序设计》3.2.3变量变量是指计算机中用来表示内存位置的一种符号3.2.3变量1.变量命名规则
变量的名字必须以字母开头;名字中不能含有任何的标点符号;名字最大长度不能超过255个字符;名字不能和VBScript中的关键字同名;变量都有作用域,它由变量的声明位置决定14《ASP程序设计》3.2.3变量1.变量命名规则变量的名字必须以字母开头3.2.3变量2.声明变量(1)隐式声明方式:在使用变量前并不需要声明,而可直接使用。
(2)显式声明方式:使用变量声明语句来声明变量的方式。变量声明语句有Dim,Public和Private。
DimstrStudentNameDimstrTeacherName,strWorkerName
15《ASP程序设计》3.2.3变量2.声明变量(1)隐式声明方式:在使用变量3.2.3变量3.变量的作用域变量的作用域指变量的有效作用范围。使用Dim声明的变量,其作用域分为过程内有效和整个程序中都有效。在变量过程内部声明的变量称为过程级变量或局部变量,只能在声明它们的过程中使用。过程外部声明的变量称为脚本级变量或全局变量,在同一个asp文件中的任何脚本命令均可访问和修改该变量的值。
16《ASP程序设计》3.2.3变量3.变量的作用域变量的作用域指变量的有效作3.2.3变量<%
OptionExplicitDimintX'声明脚本级变量
intX=1'给脚本级变量赋值
SetLocalVariab1e'调用过程修改过程级变量的值
Response.WriteintX'将脚本级变量的值发送到浏览器,值仍为1
SubSetLocalVariab1eDimintX'声明过程级变量
intX=2'给过程级变量赋值
EndSub%>
17《ASP程序设计》3.2.3变量<%17《ASP程序设计》3.2.4常量通过关键字Const定义符号常量。例如:ConstPI=3.1415926定义日期和时间型常量时需要使用#字符将它们的值包围起来。例如:Consttaday=#05-09-2005#
Constwork_time=#08:30:00#
18《ASP程序设计》3.2.4常量通过关键字Const定义符号常量。18《A3.2.5数组数组有以下几个特点:
使用数组之前要先进行定义,然后才能使用。通常用Dim语句来定义数组。数组下标的下界一律从0开始。一个数组中可包含各种子类型的数据元素。
数组分两种类型,即静态数组和动态数组。
19《ASP程序设计》3.2.5数组数组有以下几个特点:使用数组之前要先进行3.2.5数组1.静态数组分为一维、二维或多维数组。维数由数组名之后紧跟的括号中数字的个数决定,数组的大小由括号中的数值决定。静态数组在编译时开辟内存区,它的大小在运行时是不可以改变。定义一个一维数组arrVar(3):DimarrVar(3)定义一个二维数组arrTwoDim(2,3):DimarrTwoDim(2,3)
20《ASP程序设计》3.2.5数组1.静态数组定义一个一维数组arrVar(3.2.5数组2.动态数组运行时大小可变的数组。程序没运行,不占内存,运行时才为其开辟内存区。ReDim[Preserve]变量(下标)ReDimarrVar(10)DimarrVar()ReDimarrVar(4)
ReDimarrVar(6)
ReDimPreservearrVar(Ubound(arrStudent)+1)21《ASP程序设计》3.2.5数组2.动态数组DimarrVar()ReD3.2.6基本输入输出提供两种非常方便的输入输出方法,即用来输出消息的消息对话框(MessageBox)和用来要求用户输入数据的数据输入对话框(InputBox)。
22《ASP程序设计》3.2.6基本输入输出提供两种非常方便的输入输出方法,即3.2.6基本输入输出1.消息对话框MsgBox(prompt[,buttons][,title][,helpfile,context])
Prompt:字符串显示在对话框中的消息,必需。Buttons:数值显示按钮的数目及形式,可选。Title:字符串显示在标题栏中的提示信息,可选。Helpfile:字符串识别向对话框提供上下文相关帮助的帮助文件,可选。Context:数值指定帮助主题内容的编号,可选。23《ASP程序设计》3.2.6基本输入输出1.消息对话框Prompt:字符串3.2.6基本输入输出2.输入对话框InputBox(prompt[,title][,default][,xpos][,ypos][,helpfile,context])
prompt:要显示的消息。title:显示在标题栏的字符串。default:在没有其它输入时作为缺省值。xpos和ypos:指定对话框在屏幕中出现的位置。24《ASP程序设计》3.2.6基本输入输出2.输入对话框prompt:要显示3.3表达式和运算符
3.3.1
表达式和运算符概述
3.3.2数学表达式及算术运算符3.3.3条件表达式及其运算符3.3.4字符串表达式及其运算符3.3.5运算符的优先级25《ASP程序设计》3.3表达式和运算符3.3.1表达式和运算符概述3.3.1表达式和运算符概述
数学表达式:用于常规的数值运算,运算结果仍然为数值;条件表达式:常用于根据一系列条件做出判断,并采取相应的动作,运算结果为布尔值True或者False;字符串表达式:用来将多个字符串连接成一个较长的字符串,运算结果仍为字符串。
26《ASP程序设计》3.3.1表达式和运算符概述数学表达式:用于常规的数值3.3.1表达式和运算符概述运算符一般分为两种:单目运算符和双目运算符。单目运算符:只有一个前置的运算符对操作数进行操作。一般格式如下:OperatorOperand双目运算符:在运算符的两端各有一个操作数。一般形式如下:Operand1OperatorOperand227《ASP程序设计》3.3.1表达式和运算符概述运算符一般分为两种:单目运算3.3.2数学表达式及算术运算符
1.数学表达式
varA=varB+varCintResult=A-B*C+D/E
2.算术运算符常用的加、减、乘、除等数学算术运算。
28《ASP程序设计》3.3.2数学表达式及算术运算符1.数学表达式28《AS3.3.3条件表达式及其运算符1.条件表达式条件表达式可以通过两种布尔运算符来进行运算:关系运算符和逻辑运算符。Ifa<10Thenb=b+1EndIf29《ASP程序设计》3.3.3条件表达式及其运算符1.条件表达式条件表达式可3.3.3条件表达式及其运算符2.关系运算符运算符功能表达式实例恒等于(=)比较两个表达式是否相等。23=23,x+1=y-5,str=””不等于(<>或><)比较两个表达式是否不相等。X*4+1<>y,a-1<>6大于(>)一个表达式是否大于另一个表达式。5>3,var*2>6小于(<)一个表达式是否小于另一个表达式。Var<x-6,5<4大于或等于(>=)一个表达式是否大于或等于另一个表达式。“lang”>=”name”小于或等于(<=)比较一个表达式是否小于或等于另一个表达式。X<y+4对象相等(is)判断两个对象是否相等。Student1isStudent230《ASP程序设计》3.3.3条件表达式及其运算符2.关系运算符运算符功能表3.3.3条件表达式及其运算符3.逻辑运算符运算符功能表达式实例取反(Not)对逻辑真取反结果为逻辑假,反之为逻辑真。NotTrue逻辑与(And)如果两个表达式的值都为真,结果才为真,否则结果为假。(5<3)And(6>4)逻辑或(Or)两个表达式中只要有一个为真,结果就为真,只有两个都为假,结果才为假。(a<4)Or(3>1)异或(Xor)如果两个表达式同时为真或同时为假,则结果为假,否则结果为真。TrueXor(a>x)等价(Eqv)是异或运算取反的结果。如果两个表达式同时为真或同时为假,则结果为真,否则为假。(a<b)EqvFalse蕴含(Imp)当第一个表达式为真,第二个表达式为假时,结果为假,否则结果为真。TrueImp(2>3)31《ASP程序设计》3.3.3条件表达式及其运算符3.逻辑运算符运算符功能3.3.4字符串表达式及其运算符
1.字符串表达式把两个或者更多个字符串进行连接,形成一句完整的语句。
2.连接运算符连接运算符有两个:“+”和“&”。
32《ASP程序设计》3.3.4字符串表达式及其运算符1.字符串表达式32《A3.3.5运算符的优先级通常的运算顺序是:先进行函数运算,接着进行算术运算,然后进行关系运算,最后进行逻辑运算。如果表达式中含有括号,则它的优先级是最高的。
33《ASP程序设计》3.3.5运算符的优先级通常的运算顺序是:先进行函数运算3.4VBScript的控制结构3.4.1控制结构概述3.4.2选择结构3.4.3循环结构34《ASP程序设计》3.4VBScript的控制结构3.4.1控制结3.4.1控制结构概述两种类型的控制语句:条件控制语句包括选择语句(If…Then…Else)和多分支选择语句(Select…Case)。循环控制语句包括For循环控制语句(For…Next)、Do循环控制语句(Do…Loop)和While循环(While…Wend)语句。
35《ASP程序设计》3.4.1控制结构概述两种类型的控制语句:35《ASP程3.4.2选择结构1.简单条件控制语句If条件表达式
Then语句或If条件表达式
Then语句体EndIf
36《ASP程序设计》3.4.2选择结构1.简单条件控制语句If条件表达式3.4.2选择结构2.If…Then…Else语句
If条件表达式
Then语句体1Else语句体2EndIf
37《ASP程序设计》3.4.2选择结构2.If…Then…Else语句If3.4.2选择结构3.嵌套条件控制语句If条件表达式1Then[语句体1][ElseIf条件表达式2Then[语句体2]]…[Else[语句体n]]…EndIf
38《ASP程序设计》3.4.2选择结构3.嵌套条件控制语句If条件表达式13.4.2选择结构4.多分支条件控制语句SelectCase测试表达式[Case表达式1[语句体1]][Case表达式2[语句体2]]…[CaseElse[语句体n]]EndSelect
39《ASP程序设计》3.4.2选择结构4.多分支条件控制语句SelectC3.4.3循环结构1.For循环(1)For…Next语句For循环变量=初值
To终值[Step步长]
循环体[ExitFor]Next[循环变量]
40《ASP程序设计》3.4.3循环结构1.For循环(1)For…Next语3.4.3循环结构1.For循环(2)ForEach…Next语句ForEach元素
In集合
语句体Next[元素]
41《ASP程序设计》3.4.3循环结构1.For循环(2)ForEach…3.4.3循环结构2.Do循环
第一种:Do[While|Until循环条件]
循环体[ExitDo]Loop第二种:Do
循环体[ExitDo]Loop[While|Until循环条件]
42《ASP程序设计》3.4.3循环结构2.Do循环第一种:Do[Whil3.4.3循环结构3.While循环While循环条件
循环体Wend
43《ASP程序设计》3.4.3循环结构3.While循环While循环条件3.5VBScript的函数和子过程3.5.1过程概述3.5.2VBScript的函数3.5.3VBScript的子过程44《ASP程序设计》3.5VBScript的函数和子过程3.5.1过3.5.1过程概述过程只有单一入口,但可有多个出口。在Web页面任何位置都可以定义过程,客户端过程通常定义在<HEAD>和</HEAD>中。可以用浏览器所特有的事件来调用客户端脚本。可以向过程中传递任何有效的参数。过程分为无返回值的Sub(子)过程和有返回值的Function函数。45《ASP程序设计》3.5.1过程概述过程只有单一入口,但可有多个出口。3.5.2VBScript的函数[Private][Public]Function过程名[(参数列表)][语句块]函数名=表达式[ExitFunction][语句块]EndFunction
Private表示函数为私有函数Public表示公有函数(默认)“函数名=表达式”用于为函数设置返回值ExitFunction退出函数体46《ASP程序设计》3.5.2VBScript的函数[Private][Pu3.5.3VBScript的子过程[Private][Public]Sub过程名[(参数列表)][语句块][ExitSub][语句块]EndSub47《ASP程序设计》3.5.3VBScript的子过程[Private][P3.6VBScript的内部库函数
3.6.1数学函数3.6.2字符串函数3.6.3日期和时间函数3.6.4数据类型转换函数3.6.5数据类型判别函数48《ASP程序设计》3.6VBScript的内部库函数3.6.1数3.6.1数学函数名称语法实例求平方根函数SqrSqr(2)=1.4142135623731求绝对值函数AbsAbs(-2)=2指数函数ExpExp(2)=7.38905609893065对数函数LogLog(2)=0.693147180559945符号函数SgnSgn(-5)=-1
三角函数SinSin(x)CosCos(x)TanTan(x)AtnAtn(x)49《ASP程序设计》3.6.1数学函数名称语法实例求平方根函数SqrSqr(3.6.2字符串函数名称语法实例空格Space(n)
删除空白字符Trim(s)Trim("欢迎您!")="欢迎您!"长度测试Len(s)Len("欢迎您!")=4字符串截取Left(s,n)Left("北华航天工业学院",4)="北华航天"Mid(s,p,n)Mid("北华航天工业学院",5,2)="工业"Right(s,n)Right("北华航天工业学院",2)="学院"大小写转换Ucase(s)Ucase("Chinese")="CHINESE"Lcase(s)Lcase("CITY")="city"字符串匹配
InStr(s1,s2)InStr("北华航天工业学院","航天")=350《ASP程序设计》3.6.2字符串函数名称语法实例空格Space(n)
删3.6.3日期和时间函数日期函数语法格式功能Year(Now)返回当前系统的年份。Month(Now)返回当前系统的月份。Day(Now)返回当前系统的日期。WeekDay(Now[,n])返回当前系统的星期。51《ASP程序设计》3.6.3日期和时间函数日期函数语法格式功能Year(N3.6.3日期和时间函数时间函数语法格式功能Hour(Now)返回当前系统的小时(0~23)。Minute(Now)返回当前系统的分钟(0~59)。Second(Now)返回当前系统的秒(0~59)。52《ASP程序设计》3.6.3日期和时间函数时间函数语法格式功能Hour(N3.6.4数据类型转换函数名称功能CStr函数将数据转换成一个字符串。CInt函数将数据转换成一个整数。如果有小数部分则先进行四舍五入。CDate函数将数据转换成一个日期。CBool函数将数据转换成一个布尔值。CLng函数将数据转换成一个长整型数。如果有小数部分,则先进行四舍五入。CSng函数将数据转换成一个单精度数。CDbl函数将数据转换成一个双精度数。53《ASP程序设计》3.6.4数据类型转换函数名称功能CStr函数将数据转换3.6.5数据类型判别函数名称功能IsNull函数
测试自变量是否是Null,如果是,则返回真,否则返回假。IsEmpty函数测试自变量是否是Empty,如果是,则返回真,否则返回假。IsNumeric函数测试自变量是否是一个数值,如果是,则返回真,否则返回假。IsArray函数
测试自变量是否是一个数组,如果是,则返回真,否则返回假。IsDate函数测试自变量是否是一个日期型数据,如果是,则返回真,否则返回假。IsObject函数
测试自变量是否是一个对象,如果是,则返回真,否则返回假。54《ASP程序设计》3.6.5数据类型判别函数名称功能IsNull函数测试3.7VBScript的对象和事件
3.7.1对象和事件的概念3.7.2网页及浏览器对象3.7.3浏览器内嵌HTML控件3.7.4对象和事件实例55《ASP程序设计》3.7VBScript的对象和事件3.7.1对3.7.1对象和事件的概念对象是在浏览器中或者脚本编写中用于综合地描述一组功能和事件的组合体。事件是对网页中各种控件状态改变的一种描述。使用对象和属性名称时是区分大小写的。56《ASP程序设计》3.7.1对象和事件的概念对象是在浏览器中或者脚本编写中3.7.2网页及浏览器对象1.Windows窗口对象
(1)属性属性名称功能DefaultStatus用来设置状态栏中的缺省文字。Document返回当前窗口的文档对象的引用。Frames返回当前窗口中的框架。History返回当前窗口的历史对象。Location返回位置类型对象。Name返回当前窗口的名字。Parent返回当前窗口的父窗口的名字。Self对当前窗口对象的另一个引用。Status返回或设置显示在状态栏中的文字。Top返回代表最高级窗口的一个对象。57《ASP程序设计》3.7.2网页及浏览器对象1.Windows窗口对象属3.7.2网页及浏览器对象(2)Windows对象的方法
方法名称功能Alert显示一个带“OK”按钮的警告消息框,没有返回值。ClearTimeout删除一个指定的计数器,无返回值。Close关闭窗口,无返回值。Conform显示一个带有OK/Cancel的消息框,返回布尔类型值。Open打开一个新窗口或创建一个新窗口并在其中显示一个文档,返回一个Windows对象。Prompt显示一个带有OK/Cancel类型的输入型对话框,返回字符串类型值。SetTimeout经过指定时间后执行特定的代码,返回长整数值。58《ASP程序设计》3.7.2网页及浏览器对象(2)Windows对象的方法3.7.2网页及浏览器对象(3)Windows窗口对象的事件OnLoad:加载页面调用相应事件。OnUnload:卸载页面调用相应事件。59《ASP程序设计》3.7.2网页及浏览器对象(3)Windows窗口对象的3.7.2网页及浏览器对象2.Document对象(1)Document对象的属性
属性名称功能LinkColor返回或设置文档中链接的颜色。AlinkColor返回或设置文档中的活动链接的颜色。VlinkColor返回或设置被访问过的链接的颜色。BGColor返回或设置文档的背景色。
FGColor返回或设置文档的前景色。Forms表示在一个HTML文档中的一个窗体,LastModified返回当前文档最近一次被修改的时间。Title返回当前文档的标题,只读。Cookie返回或设置曾经访问过网页的客户方的Cookie。Referrer返回所指向的文档的URL字符串。Links返回一个链接数组。60《ASP程序设计》3.7.2网页及浏览器对象2.Document对象(1)3.7.2网页及浏览器对象(2)Document文档对象的方法方法名称功能Write将字符串变量写入当前文档中。WriteLn写入到当前文档时,将字符串变量作为一个新行附加到结尾。Open为输出数据打开一个新的文档。Close关闭文档流。Clear关闭已经开启的文档输出流,并且清除屏幕上所有的内容。61《ASP程序设计》3.7.2网页及浏览器对象(2)Document文档对象3.7.2网页及浏览器对象3.Location对象属性名称功能Href返回或设置装载入浏览器窗口的完整的URL。Protocol返回或设置URL使用的协议,例如HTTP协议、FTP协议等。Host返回或设置URL的宿主和端口,宿主和端口之间用冒号隔开。HostName读取或设置URL的宿主,可以是一个IP地址或是一个名字。Port返回或设置URL的端口。PathName返回或设置URL的路径名。Search返回或设置URL的搜索部分Hash返回或设置URL的无用部分。62《ASP程序设计》3.7.2网页及浏览器对象3.Location对象属性名3.7.2网页及浏览器对象4.History历史对象
History.back(n)History.forward(n)History.go(n)63《ASP程序设计》3.7.2网页及浏览器对象4.History历史对象63.7.2网页及浏览器对象5.Form对象可以作为文档对象的一个属性被访问。Action:返回或设置表单的动作属性。Elements:返回或设置表单的元素属性。Method:返回或设置表单的方法属性。Target:返回或设置表单的目标属性。Encoding:返回或设置表单的代码属性。64《ASP程序设计》3.7.2网页及浏览器对象5.Form对象可以作为文档对3.7.3浏览器内嵌HTML控件控件事件方法ButtonOnClickOnFocusClickFocusCheckBoxOnClickOnFocusClickFocusPassWordOnFocusFocusRadioOnClickOnFocusClickFocusResetOnClickOnFocusClickFocusSelectOnFocusOnBlurOnChangeFocusBlurSubmitOnClickOnFocusClickFocusTextOnFocusOnBlurOnChangeOnSelectFocusBlurSelectTextAreaOnChangOnSelectSelect65《ASP程序设计》3.7.3浏览器内嵌HTML控件控件事件方法Button3.8VBScript纠错处理3.8.1VBScript中的编码约定3.8.2交互的调错环境3.8.3常见错误及调试66《ASP程序设计》3.8VBScript纠错处理3.8.1VBSc3.8.1VBScript中的编码约定1.HTML编写格式约定
脚本代码可以放在网页的任何位置,但最好放在<HEAD>和</HEAD>中间,这样浏览器可以首先解释和运行脚本代码,而且醒目和易于调试和维护。脚本中应该包含注释标记,可在浏览器不支持脚本时将其隐藏。在编写程序时要有一定的层次结构,尽量注意缩进。67《ASP程序设计》3.8.1VBScript中的编码约定1.HTML编写格3.8.1VBScript中的编码约定2.命名约定定义变量时,在变量前加上其对应的数据类型;定义函数和过程应该以要完成的功能的动词开始。InitArray或者CloseFrame等。68《ASP程序设计》3.8.1VBScript中的编码约定2.命名约定定义变3.8.1VBScript中的编码约定3.注释语句约定当传递给过程的参数用途不明显,或者过程对参数的取值范围要求严格时,应加以说明。每个重要变量的声明部分要添加注释来描述它的用途。应在<SCRIPT>的开始部分包含该段代码的功能描述注释。69《ASP程序设计》3.8.1VBScript中的编码约定3.注释语句约定当3.8.2交互的调错环境常用的调错环境有:MicrosoftVisualC++DeveloperStudio开发平台的源代码编辑器MicrosoftInternetExploer浏览器70《ASP程序设计》3.8.2交互的调错环境常用的调错环境有:70《ASP程3.8.3常见错误及调试1.文档加载时错误在HTML文档加载时就出现错误而不能运行的现象,有时也称符号错误。2.网页运行时错误
网页加载后,在运行网页对象的事件过程中出现的错误。71《ASP程序设计》3.8.3常见错误及调试1.文档加载时错误71《ASP程第3章VBScript脚本语言
3.1VBScript概述
3.2VBScript的基本数据类型及输入输出
3.3VBScript的表达式和运算符
3.4VBScript的控制结构
3.5VBScript的函数和子过程
3.6VBScript的内部库函数
3.7VBScript的对象和事件
3.8VBScript纠错处理
72《ASP程序设计》第3章VBScript脚本语言3.1VBScrip3.1VBScript概述
3.1.1VBScript概述3.1.2VBScript与JavaScript3.1.3VBScript脚本类型3.1.4VBScript实例73《ASP程序设计》3.1VBScript概述3.1.1VBScrip3.1VBScript概述静态网页的功能有很大的局限性,因此具有强大的交互能力的动态网页得到了广泛的流行。VBScript是目前进行动态网页开发中必不可少的一种脚本语言。74《ASP程序设计》3.1VBScript概述静态网页的功能有很大的局限性,因3.1.1VBScript概述
HTML语言编写的网页是一种静态文档。脚本语言和HTML标记一起编写动态网页,这种网页可以被服务器执行。脚本语言是介于HTML和Java、VisualBasic等编程语言之间的语言,可使用任何文本编辑器编写,保存为纯ASCII文本文件。目前比较流行的脚本语言主要有两种,即VBScript和JavaScript。75《ASP程序设计》3.1.1VBScript概述HTML语言编写的网页是3.1.2VBScript与JavaScript在IIS中设定。在网页中指定脚本语言<%@LANGUAGE=VBScript%>或<%@LANGUAGE=VBScript%>利用<Script>设定脚本语言,例如:<Scriptlanguage="Vbscript">
ASP中的缺省语言是VBScript。脚本语言的设置方法主要有:76《ASP程序设计》3.1.2VBScript与JavaScript在IIS3.1.3VBScript脚本类型
1.客户端脚本客户端脚本由浏览器解释执行。<SCRIPTLANGUAGE="language"[EVENT="event"][FOR="object"]><!--
脚本代码--></SCRIPT>
LANGUAGE:指定使用哪一种脚本语言EVENT:指定与此段脚本相关联的事件FOR:指定与事件相关联的对象77《ASP程序设计》3.1.3VBScript脚本类型1.客户端脚本3.1.3VBScript脚本类型2.服务器端脚本在Web服务器上执行,由服务器根据脚本的执行结果生成相应的HTML页面并发送到客户端浏览器中并显示,不受浏览器的限制。
<SCRIPTLANGUAGE=VBScriptRUNAT=server><!—
脚本代码--></SCRIPT><%VBScript脚本程序片段%>
78《ASP程序设计》3.1.3VBScript脚本类型2.服务器端脚本<SC3.1.4VBScript实例
79《ASP程序设计》3.1.4VBScript实例8《ASP程序设计》3.2基本数据类型及输入输出
3.2.1简单编程约定3.2.2基本数据类型及其子类型3.2.3变量3.2.4常量3.2.5数组3.2.6基本输入输出80《ASP程序设计》3.2基本数据类型及输入输出3.2.1简单编程约定3.2.1简单编程约定1.程序中的层次感和注释一般格式为:格式一:Rem注释内容格式二:′注释内容或语句′注释内容两种表现形式:通过使用Rem语句采用西文单引号“′”81《ASP程序设计》3.2.1简单编程约定1.程序中的层次感和注释一般格式为3.2.1简单编程约定2.单行文本转成多行使用续行符“-”(由一个空格和一个下划线组成),将长的语句分成多行书写。3.使用不同进制的数字在VBScript中,可以用默认的十进制来表示数字,还使用十六进制或八进制来表示数字。82《ASP程序设计》3.2.1简单编程约定2.单行文本转成多行使用续行符“3.2.2基本数据类型及其子类型
VBScript只有一种特殊的数据类型,即变体(Variant)数据类型,它可以随着变量被使用方式的不同而包含不同的数据信息,会根据不同的应用环境,将变量区别对待。由变体类型引申出来的类型称为子类型。
83《ASP程序设计》3.2.2基本数据类型及其子类型VBScript只有一种3.2.3变量变量是指计算机中用来表示内存位置的一种符号,在内存中存储着程序所需的各种数据,脚本执行时这个内存中的数据可以改变。
84《ASP程序设计》3.2.3变量变量是指计算机中用来表示内存位置的一种符号3.2.3变量1.变量命名规则
变量的名字必须以字母开头;名字中不能含有任何的标点符号;名字最大长度不能超过255个字符;名字不能和VBScript中的关键字同名;变量都有作用域,它由变量的声明位置决定85《ASP程序设计》3.2.3变量1.变量命名规则变量的名字必须以字母开头3.2.3变量2.声明变量(1)隐式声明方式:在使用变量前并不需要声明,而可直接使用。
(2)显式声明方式:使用变量声明语句来声明变量的方式。变量声明语句有Dim,Public和Private。
DimstrStudentNameDimstrTeacherName,strWorkerName
86《ASP程序设计》3.2.3变量2.声明变量(1)隐式声明方式:在使用变量3.2.3变量3.变量的作用域变量的作用域指变量的有效作用范围。使用Dim声明的变量,其作用域分为过程内有效和整个程序中都有效。在变量过程内部声明的变量称为过程级变量或局部变量,只能在声明它们的过程中使用。过程外部声明的变量称为脚本级变量或全局变量,在同一个asp文件中的任何脚本命令均可访问和修改该变量的值。
87《ASP程序设计》3.2.3变量3.变量的作用域变量的作用域指变量的有效作3.2.3变量<%
OptionExplicitDimintX'声明脚本级变量
intX=1'给脚本级变量赋值
SetLocalVariab1e'调用过程修改过程级变量的值
Response.WriteintX'将脚本级变量的值发送到浏览器,值仍为1
SubSetLocalVariab1eDimintX'声明过程级变量
intX=2'给过程级变量赋值
EndSub%>
88《ASP程序设计》3.2.3变量<%17《ASP程序设计》3.2.4常量通过关键字Const定义符号常量。例如:ConstPI=3.1415926定义日期和时间型常量时需要使用#字符将它们的值包围起来。例如:Consttaday=#05-09-2005#
Constwork_time=#08:30:00#
89《ASP程序设计》3.2.4常量通过关键字Const定义符号常量。18《A3.2.5数组数组有以下几个特点:
使用数组之前要先进行定义,然后才能使用。通常用Dim语句来定义数组。数组下标的下界一律从0开始。一个数组中可包含各种子类型的数据元素。
数组分两种类型,即静态数组和动态数组。
90《ASP程序设计》3.2.5数组数组有以下几个特点:使用数组之前要先进行3.2.5数组1.静态数组分为一维、二维或多维数组。维数由数组名之后紧跟的括号中数字的个数决定,数组的大小由括号中的数值决定。静态数组在编译时开辟内存区,它的大小在运行时是不可以改变。定义一个一维数组arrVar(3):DimarrVar(3)定义一个二维数组arrTwoDim(2,3):DimarrTwoDim(2,3)
91《ASP程序设计》3.2.5数组1.静态数组定义一个一维数组arrVar(3.2.5数组2.动态数组运行时大小可变的数组。程序没运行,不占内存,运行时才为其开辟内存区。ReDim[Preserve]变量(下标)ReDimarrVar(10)DimarrVar()ReDimarrVar(4)
ReDimarrVar(6)
ReDimPreservearrVar(Ubound(arrStudent)+1)92《ASP程序设计》3.2.5数组2.动态数组DimarrVar()ReD3.2.6基本输入输出提供两种非常方便的输入输出方法,即用来输出消息的消息对话框(MessageBox)和用来要求用户输入数据的数据输入对话框(InputBox)。
93《ASP程序设计》3.2.6基本输入输出提供两种非常方便的输入输出方法,即3.2.6基本输入输出1.消息对话框MsgBox(prompt[,buttons][,title][,helpfile,context])
Prompt:字符串显示在对话框中的消息,必需。Buttons:数值显示按钮的数目及形式,可选。Title:字符串显示在标题栏中的提示信息,可选。Helpfile:字符串识别向对话框提供上下文相关帮助的帮助文件,可选。Context:数值指定帮助主题内容的编号,可选。94《ASP程序设计》3.2.6基本输入输出1.消息对话框Prompt:字符串3.2.6基本输入输出2.输入对话框InputBox(prompt[,title][,default][,xpos][,ypos][,helpfile,context])
prompt:要显示的消息。title:显示在标题栏的字符串。default:在没有其它输入时作为缺省值。xpos和ypos:指定对话框在屏幕中出现的位置。95《ASP程序设计》3.2.6基本输入输出2.输入对话框prompt:要显示3.3表达式和运算符
3.3.1
表达式和运算符概述
3.3.2数学表达式及算术运算符3.3.3条件表达式及其运算符3.3.4字符串表达式及其运算符3.3.5运算符的优先级96《ASP程序设计》3.3表达式和运算符3.3.1表达式和运算符概述3.3.1表达式和运算符概述
数学表达式:用于常规的数值运算,运算结果仍然为数值;条件表达式:常用于根据一系列条件做出判断,并采取相应的动作,运算结果为布尔值True或者False;字符串表达式:用来将多个字符串连接成一个较长的字符串,运算结果仍为字符串。
97《ASP程序设计》3.3.1表达式和运算符概述数学表达式:用于常规的数值3.3.1表达式和运算符概述运算符一般分为两种:单目运算符和双目运算符。单目运算符:只有一个前置的运算符对操作数进行操作。一般格式如下:OperatorOperand双目运算符:在运算符的两端各有一个操作数。一般形式如下:Operand1OperatorOperand298《ASP程序设计》3.3.1表达式和运算符概述运算符一般分为两种:单目运算3.3.2数学表达式及算术运算符
1.数学表达式
varA=varB+varCintResult=A-B*C+D/E
2.算术运算符常用的加、减、乘、除等数学算术运算。
99《ASP程序设计》3.3.2数学表达式及算术运算符1.数学表达式28《AS3.3.3条件表达式及其运算符1.条件表达式条件表达式可以通过两种布尔运算符来进行运算:关系运算符和逻辑运算符。Ifa<10Thenb=b+1EndIf100《ASP程序设计》3.3.3条件表达式及其运算符1.条件表达式条件表达式可3.3.3条件表达式及其运算符2.关系运算符运算符功能表达式实例恒等于(=)比较两个表达式是否相等。23=23,x+1=y-5,str=””不等于(<>或><)比较两个表达式是否不相等。X*4+1<>y,a-1<>6大于(>)一个表达式是否大于另一个表达式。5>3,var*2>6小于(<)一个表达式是否小于另一个表达式。Var<x-6,5<4大于或等于(>=)一个表达式是否大于或等于另一个表达式。“lang”>=”name”小于或等于(<=)比较一个表达式是否小于或等于另一个表达式。X<y+4对象相等(is)判断两个对象是否相等。Student1isStudent2101《ASP程序设计》3.3.3条件表达式及其运算符2.关系运算符运算符功能表3.3.3条件表达式及其运算符3.逻辑运算符运算符功能表达式实例取反(Not)对逻辑真取反结果为逻辑假,反之为逻辑真。NotTrue逻辑与(And)如果两个表达式的值都为真,结果才为真,否则结果为假。(5<3)And(6>4)逻辑或(Or)两个表达式中只要有一个为真,结果就为真,只有两个都为假,结果才为假。(a<4)Or(3>1)异或(Xor)如果两个表达式同时为真或同时为假,则结果为假,否则结果为真。TrueXor(a>x)等价(Eqv)是异或运算取反的结果。如果两个表达式同时为真或同时为假,则结果为真,否则为假。(a<b)EqvFalse蕴含(Imp)当第一个表达式为真,第二个表达式为假时,结果为假,否则结果为真。TrueImp(2>3)102《ASP程序设计》3.3.3条件表达式及其运算符3.逻辑运算符运算符功能3.3.4字符串表达式及其运算符
1.字符串表达式把两个或者更多个字符串进行连接,形成一句完整的语句。
2.连接运算符连接运算符有两个:“+”和“&”。
103《ASP程序设计》3.3.4字符串表达式及其运算符1.字符串表达式32《A3.3.5运算符的优先级通常的运算顺序是:先进行函数运算,接着进行算术运算,然后进行关系运算,最后进行逻辑运算。如果表达式中含有括号,则它的优先级是最高的。
104《ASP程序设计》3.3.5运算符的优先级通常的运算顺序是:先进行函数运算3.4VBScript的控制结构3.4.1控制结构概述3.4.2选择结构3.4.3循环结构105《ASP程序设计》3.4VBScript的控制结构3.4.1控制结3.4.1控制结构概述两种类型的控制语句:条件控制语句包括选择语句(If…Then…Else)和多分支选择语句(Select…Case)。循环控制语句包括For循环控制语句(For…Next)、Do循环控制语句(Do…Loop)和While循环(While…Wend)语句。
106《ASP程序设计》3.4.1控制结构概述两种类型的控制语句:35《ASP程3.4.2选择结构1.简单条件控制语句If条件表达式
Then语句或If条件表达式
Then语句体EndIf
107《ASP程序设计》3.4.2选择结构1.简单条件控制语句If条件表达式3.4.2选择结构2.If…Then…Else语句
If条件表达式
Then语句体1Else语句体2EndIf
108《ASP程序设计》3.4.2选择结构2.If…Then…Else语句If3.4.2选择结构3.嵌套条件控制语句If条件表达式1Then[语句体1][ElseIf条件表达式2Then[语句体2]]…[Else[语句体n]]…EndIf
109《ASP程序设计》3.4.2选择结构3.嵌套条件控制语句If条件表达式13.4.2选择结构4.多分支条件控制语句SelectCase测试表达式[Case表达式1[语句体1]][Case表达式2[语句体2]]…[CaseElse[语句体n]]EndSelect
110《ASP程序设计》3.4.2选择结构4.多分支条件控制语句SelectC3.4.3循环结构1.For循环(1)For…Next语句For循环变量=初值
To终值[Step步长]
循环体[ExitFor]Next[循环变量]
111《ASP程序设计》3.4.3循环结构1.For循环(1)For…Next语3.4.3循环结构1.For循环(2)ForEach…Next语句ForEach元素
In集合
语句体Next[元素]
112《ASP程序设计》3.4.3循环结构1.For循环(2)ForEach…3.4.3循环结构2.Do循环
第一种:Do[While|Until循环条件]
循环体[ExitDo]Loop第二种:Do
循环体[ExitDo]Loop[While|Until循环条件]
113《ASP程序设计》3.4.3循环结构2.Do循环第一种:Do[Whil3.4.3循环结构3.While循环While循环条件
循环体Wend
114《ASP程序设计》3.4.3循环结构3.While循环While循环条件3.5VBScript的函数和子过程3.5.1过程概述3.5.2VBScript的函数3.5.3VBScript的子过程115《ASP程序设计》3.5VBScript的函数和子过程3.5.1过3.5.1过程概述过程只有单一入口,但可有多个出口。在Web页面任何位置都可以定义过程,客户端过程通常定义在<HEAD>和</HEAD>中。可以用浏览器所特有的事件来调用客户端脚本。可以向过程中传递任何有效的参数。过程分为无返回值的Sub(子)过程和有返回值的Function函数。116《ASP程序设计》3.5.1过程概述过程只有单一入口,但可有多个出口。3.5.2VBScript的函数[Private][Public]Function过程名[(参数列表)][语句块]函数名=表达式[ExitFunction][语句块]EndFunction
Private表示函数为私有函数Public表示公有函数(默认)“函数名=表达式”用于为函数设置返回值ExitFunction退出函数体117《ASP程序设计》3.5.2VBScript的函数[Private][Pu3.5.3VBScript的子过程[Private][Public]Sub过程名[(参数列表)][语句块][ExitSub][语句块]EndSub118《ASP程序设计》3.5.3VBScript的子过程[Private][P3.6VBScript的内部库函数
3.6.1数学函数3.6.2字符串函数3.6.3日期和时间函数3.6.4数据类型转换函数3.6.5数据类型判别函数119《ASP程序设计》3.6VBScript的内部库函数3.6.1数3.6.1数学函数名称语法实例求平方根函数SqrSqr(2)=1.4142135623731求绝对值函数AbsAbs(-2)=2指数函数ExpExp(2)=7.38905609893065对数函数LogLog(2)=0.693147180559945符号函数SgnSgn(-5)=-1
三角函数SinSin(x)CosCos(x)TanTan(x)AtnAtn(x)120《ASP程序设计》3.6.1数学函数名称语法实例求平方根函数SqrSqr(3.6.2字符串函数名称语法实例空格Space(n)
删除空白字符Trim(s)Trim("欢迎您!")="欢迎您!"长度测试Len(s)Len("欢迎您!")=4字符串截取Left(s,n)Left("北华航天工业学院",4)="北华航天"Mid(s,p,n)Mid("北华航天工业学院",5,2)="工业"Right(s,n)Right("北华航天工业学院",2)="学院"大小写转换Ucase(s)Ucase("Chinese")="CHINESE"Lcase(s)Lcase("CITY")="city"字符串匹配
InStr(s1,s2)InStr("北华航天工业学院","航天")=3121《ASP程序设计》3.6.2字符串函数名称语法实例空格Space(n)
删3.6.3日期和时间函数日期函数语法格式功能Year(Now)返回当前系统的年份。Month(Now)返回当前系统的月份。Day(Now)返回当前系统的日期。WeekDay(Now[,n])返回当前系统的星期。122《ASP程序设计》3.6.3日期和时间函数日期函数语法格式功能Year(N3.6.3日期和时间函数时间函数语法格式功能Hour(Now)返回当前系统的小时(0~23)。Minute(Now)返回当前系统的分钟(0~59)。Second(Now)返回当前系统的秒(0~59)。123《ASP程序设计》3.6.3日期和时间函数时间函数语法格式功能Hour(N3.6.4数据类型转换函数名称功能CStr函数将数据转换成一个字符串。CInt函数将数据转换成一个整数。如果有小数部分则先进行四舍五入。CDate函数将数据转换成一个日期。CBool函数将数据转换成一个布尔值。CLng函数将数据转换成一个长整型数。如果有小数部分,则先进行四舍五入。CSng函数将数据转换成一个单精度数。CDbl函数将数据转换成一个双精度数。124《ASP程序设计》3.6.4数据类型转换函数名称功能CStr函数将数据转换3.6.5数据类型判别函数名称功能IsNull函数
测试自变量是否是Null,如果是,则返回真,否则返回假。IsEmpty函数测试自变量是否是Empty,如果是,则返回真,否则返回假。IsNumeric函数测试自变量是否是一个数值,如果是,则返回真,否则返回假。IsArray函数
测试自变量是否是一个数组,如果是,则返回真,否则返回假。IsDate函数测试自变量是否是一个日期型数据,如果是,则返回真,否则返回假。IsObject函数
测试自变量是否是一个对象,如果是,则返回真,否则返回假。125《ASP程序设计》3.6.5数据类型判别函数名称功能IsNull函数测试3.7VBScript的对象和事件
3.7.1对象和事件的概念3.7.2网页及浏览器对象3.7.3浏览器内嵌HTML控件3.7.4对象和事件实例126《ASP程序设计》3.7VBScript的对象和事件3.7.1对3.7.1对象和事件的概念对象是在浏览器中或者脚本编写中用于综合地描述一组功能和事件的组合体。事件是对网页中各种控件状态改变的一种描述。使用对象和属性名称时是区分大小写的。127《ASP程序设计》3.7.1对象和事件的概念对象是在浏览器中或者脚本编写中3.7.2网页及浏览器对象1.Windows窗口对象
(1)属性属性名称功能DefaultStatus用来设置状态栏中的缺省文字。Document返回当前窗口的文档对象的引用。Frames返回当前窗口中的框架。History返回当前窗口的历史对象。Location返回位置类型对象。Name返回当前窗口的名字。Parent返回当前窗口的父窗口的名字。Self对当前窗口对象的另一个引用。Status返回或设置显示在状态栏中的文字。Top返回代表最高级窗口的一个对象。128《ASP程序设计》3.7.2网页及浏览器对象1.Windows窗口对象属3.7.2网页及浏览器对象(2)Windows对象的方法
方法名称功能Alert显示一个带“OK”按钮的警告消息框,没有返回值。ClearTimeout删除一个指定的计数器,无返回值。Close关闭窗口,无返回值。Conform显示一个带有OK/Cancel的消息框,返回布尔类型值。Open打开一个新窗口或创建一个新窗口并在其中显示一个文档,返回一个Windows对象。Prompt显示一个带有
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 会计操作流程规范
- 教育机构呼出培训标准流程
- 防蛇安全教育中班
- 散文写景鉴赏课件
- 儿童游泳安全教育
- 26年中药联用评估指引
- 大班游戏安全教育
- 2025年城市黑臭水体治理
- 2025年城市供水系统漏损控制管理体系
- 婚姻养老协议书
- 2026中国联通校园招聘面试攻略及模拟题
- 四年级语文下册《在天晴了的时候》跨学科融合导学案
- DB61∕T 2115-2025 中深层地热能开发钻完井技术规程
- 《社会工作综合能力(初级)》课件全套 第1-12章 社会工作服务的内涵 社会工作综合能力(初级)-社会工作服务相关法规与政策 社会工作综合能力(初级)
- 防排烟系统风管安装施工作业指导书
- (2026春新版)人教版八年级数学下册全册教案
- 2026年高考数学填空题集
- 2026届新高考高中英语语法填空题66篇(含答案解析)
- 2025年临沂市科技信息学校公开招聘教师笔试历年题库(11名)附答案解析
- 2025年济南新旧动能转换起步区公开招聘社区工作者(30人)(公共基础知识)综合能力测试题附答案解析
- 2026届高考化学冲刺复习+突破能垒图常见考点考法
评论
0/150
提交评论