《ASP程序设计》1第3章VBScript脚本语言3.1VBScript概述3.2VBScript的基本数据类型及输入输出3.3VBScript的表达式和运算符3.4VBScript的控制结构3.5VBScript的函数和子过程3.6VBScript的内部库函数3.7VBScript的对象和事件3.8VBScript纠错处理《ASP程序设计》23.1VBScript概述3.1.1VBScript概述3.1.2VBScript与JavaScript3.1.3VBScript脚本类型3.1.4VBScript实例《ASP程序设计》33.1VBScript概述静态网页的功能有很大的局限性,因此具有强大的交互能力的动态网页得到了广泛的流行。VBScript是目前进行动态网页开发中必不可少的一种脚本语言。《ASP程序设计》43.1.1VBScript概述HTML语言编写的网页是一种静态文档。脚本语言和HTML标记一起编写动态网页,这种网页可以被服务器执行。脚本语言是介于HTML和Java、VisualBasic等编程语言之间的语言,可使用任何文本编辑器编写,保存为纯ASCII文本文件。目前比较流行的脚本语言主要有两种,即VBScript和JavaScript。《ASP程序设计》53.1.2VBScript与JavaScript在IIS中设定。在网页中指定脚本语言%@LANGUAGE=VBScript%利用Script设定脚本语言,例如:Scriptlanguage=VBScriptRUNAT=“Server”……/ScriptASP中的缺省语言是VBScript。脚本语言的设置方法主要有:《ASP程序设计》63.1.3VBScript脚本类型1.客户端脚本客户端脚本由浏览器解释执行。SCRIPTLANGUAGE=language[EVENT=event][FOR=object]!--脚本代码--/SCRIPTLANGUAGE:指定使用哪一种脚本语言EVENT:指定与此段脚本相关联的事件FOR:指定与事件相关联的对象《ASP程序设计》73.1.3VBScript脚本类型2.服务器端脚本在Web服务器上执行,由服务器根据脚本的执行结果生成相应的HTML页面并发送到客户端浏览器中并显示,不受浏览器的限制。SCRIPTLANGUAGE=VBScriptRUNAT=server!—脚本代码--/SCRIPT%VBScript脚本程序片段%《ASP程序设计》83.1.4VBScript实例《ASP程序设计》93.2基本数据类型及输入输出3.2.1简单编程约定3.2.2基本数据类型及其子类型3.2.3变量3.2.4常量3.2.5数组3.2.6基本输入输出《ASP程序设计》103.2.1简单编程约定1.程序中的层次感和注释一般格式为:格式一:Rem注释内容格式二:′注释内容或语句′注释内容两种表现形式:通过使用Rem语句采用西文单引号“′”《ASP程序设计》113.2.1简单编程约定2.单行文本转成多行使用续行符“_”(由一个空格和一个下划线组成),将长的语句分成多行书写。Str=“南京师范大学前身是”&vbCtrlf&_“三江师范学堂!”3.使用不同进制的数字在VBScript中,可以用默认的十进制来表示数字,还使用十六进制或八进制来表示数字。《ASP程序设计》123.2.2基本数据类型及其子类型VBScript只有一种特殊的数据类型,即变体(Variant)数据类型,它可以随着变量被使用方式的不同而包含不同的数据信息,会根据不同的应用环境,将变量区别对待。由变体类型引申出来的类型称为子类型。《ASP程序设计》13子类型1.字符串型(StrName)字符串类型用于保存字符串数据,字符串类型用String表示,可包含变长字符串,最大长度可存放20亿个字符。字符串前后要加上“”,例如:“Goodmorning!”、“程序”。2.数值型数值型根据存放的数值的范围不同,可分为下列类型:Byte型(字节型1B)BytCharacter包含0到255之间的整数Integer型(整型2B)IntYear包含-32768到32767之间整数《ASP程序设计》14Long型(长整型4B)LngNumber包含-2147483648到2147483647之间的整数Single型(4B)SngSalary包含单精度浮点数,负数范围从-3.402823E38到-1.401298E-45,正数范围从1.401298E-45到3.402823E38Double型(8B)DblPopulatin包含双精度浮点数,负数范围从-1.79769313486232E308到-4.94065645841247E-324,正数范围从4.94065645841247E-324到1.79769313486232E308《ASP程序设计》153.货币型CurMoney用Currency表示,-922337203685477.58到922337203685477.58074.日期型DtmSystem日期类型用来保存日期和时间数据,日期数据要求在日期时间值前后加上“#”。例如:#12-3-2003#。日期类型用Date(Time)表示,包含表示日期的数字,日期范围从公元100年1月1日到公元9999年12月31日。《ASP程序设计》165.逻辑型(2B)BlnRetired逻辑类型数据主要用来存放逻辑判断的结果,取值为逻辑值,即True(真)或False(假)。当将其他数据类型转换为逻辑数据时,非0转换为True,0转换为False。逻辑类型用Boolean表示,包含True或False。6.对象型(4B)ObjTemp《ASP程序设计》173.2.3变量变量是指计算机中用来表示内存位置的一种符号,在内存中存储着程序所需的各种数据,脚本执行时这个内存中的数据可以改变。它不区分大小写。DimStrName;《ASP程序设计》183.2.3变量1.变量命名规则变量的名字必须以字母开头;名字中不能含有任何的标点符号;名字最大长度不能超过255个字符;名字不能和VBScript中的关键字同名;变量都有作用域,它由变量的声明位置决定《ASP程序设计》193.2.3变量2.声明变量(1)隐式声明方式:在使用变量前并不需要声明,而可直接使用。IntDegree=45(2)显式声明方式:使用变量声明语句来声明变量的方式。变量声明语句有Dim,Public和Private。例3-2-1DimstrStudentNameDimstrTeacherName,strWorkerName《ASP程序设计》203.2.3变量3.变量的作用域变量的作用域指变量的有效作用范围。使用Dim声明的变量,其作用域分为过程内有效和整个程序中都有效。在变量过程内部声明的变量称为过程级变量或局部变量,只能在声明它们的过程中使用。过程外部声明的变量称为脚本级变量或全局变量,在同一个asp文件中的任何脚本命令均可访问和修改该变量的值。《ASP程序设计》213.2.3变量%OptionExplicitDimintX'声明脚本级变量intX=1'给脚本级变量赋值SetLocalVariab1e'调用过程修改过程级变量的值Response.WriteintX'将脚本级变量的值发送到浏览器,值仍为1SubSetLocalVariab1eDimintX'声明过程级变量intX=2'给过程级变量赋值EndSub%《ASP程序设计》223.2.4常量通过关键字Const定义符号常量。例如:ConstPI=3.1415926定义日期和时间型常量时需要使用#字符将它们的值包围起来。例如:Consttaday=#05-09-2005#Constwork_time=#08:30:00#为了避免发生重复定义变量的错误,可以考虑在所声明的常量前面加上Con或Vb等特殊意义的字符作标记,或者将声明常量全部大写。《ASP程序设计》233.2.5数组数组有以下几个特点:使用数组之前要先进行定义,然后才能使用。通常用Dim语句来定义数组。数组下标的下界一律从0开始。一个数组中可包含各种子类型的数据元素。数组分两种类型,即静态数组和动态数组。《ASP程序设计》243.2.5数组1.静态数组分为一维、二维或多维数组。维数由数组名之后紧跟的括号中数字的个数决定,数组的大小由括号中的数值决定。静态数组在编译时开辟内存区,它的大小在运行时是不可以改变。定义一个一维数组arrVar(3):DimarrVar(3)定义一个二维数组arrTwoDim(2,3):DimarrTwoDim(2,3)《ASP程序设计》253.2.5数组2.动态数组运行时大小可变的数组。程序没运行,不占内存,运行时才为其开辟内存区。ReDim[Preserve]变量(下标)ReDimarrVar(10)DimarrVar()ReDimarrVar(4)ReDimarrVar(6)为了改变数组大小而又不丢失数组中的数据,则要使用关键字Preserve。ReDimPreservearrVar(8)《ASP程序设计》26VBScript常用函数-数字运算函数1、取绝对值:格式:Abs(数值表达式)Abs(-5)=52、取整格式:Int(数值表达式)Int(5.6)=53、四舍五入格式:CInt(数值表达式)CInt(5.6)=6《ASP程序设计》274、开平方格式:Sqr(数值表达式)Sqr(16)=4例3-1《ASP程序设计》28字符串函数1、字符串长度检测格式:Len(字符串表达式)Len(”计算机”)结果为:32、截取字符串左/右截取:Left/Right(字符串表达式,截取的位数)中间截取Mid(字符串表达式,从第几位,[截到第几位止])Left/Right/Mid(“VBScript函数有哪些”,5)---VBScr/函数有哪些/ript函数有哪些《ASP程序设计》293、大小写转换小写转大写:Ucase(字符串表达式)大写转小写:Lcase(字符串表达式)如:Ucase(AbcdEF)---ABCDEFLcase(AbcdEF)---abcdef《ASP程序设计》304、去除字符串中的空格左边空格:Ltrim(字符串表达式)右边空格:Rtrim(字符串表达式)两端空格:Trim(字符串表达式)如:Ltrim(“先生”)---“先生”Rtrim(“先生”)---“先生”Trim(“先生”)---“先生”《ASP程序设计》31日期函数1、取系统当前的日期:Date2、取系统当前的时间:Time3、取系统当前的日期及时间:Now如:document.write(Date)document.write(Time)document.write(Now)例3-2《ASP程序设计》323.2.6基本输入输出提供两种非常方便的输入输出方法,即用来输出消息的消息对话框(MessageBox)和用来要求用户输入数据的数据输入对话框(InputBox)。《ASP程序设计》331、产生输入框:接收用户输入信息的输入框Inputbox(“[提示信息]”)Inputbox(“请输入你的姓名:”)Prompt(“[提示信息]”)Prompt(“请输入你的姓名:”)2、Alert(“[提示信息]”)Alert(“恭喜你通过!”)例:E3_msgbox.htm《ASP程序设计》343、产生选择框confirm(“[提示信息]”)Confirm(“是否真的这么选?”)MsgBox(“[提示信息],[数值]”)MsgBox(“是否真的这么选?”,3)《ASP程序设计》353.2.6基本输入输出1.消息对话框MsgBox(prompt[,buttons][,title][,helpfile,context])Prompt:字符串显示在对话框中的消息,必需。Buttons:数值