1、第 3章 VBScript 语言本文由 fore1150贡献ppt文档可能在 WAP端浏览体验不佳。建议您优先选择 TXT,或下载源文件到本机查看。第 3章 VBScript 语言3.1 VBScript 基本元素3.1.1 数据类型1. 字符串型 字符串类型用于保存字符串数据,字符串类型用String表示,可包含变 长字符串,最大长度可存放 20亿个字符.字符串前后要加上“ “,例如: “Good morning !“,“程序“. 2.数值型 . 数值型根据存放的数值的范围不同,可分为下列类型: Byte 型 包含0到 255之间的整数 Integer 型 包含-32 768 到 32 76
2、7之间整数 Long型 包含-2147 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.79769313486232E3083.1.1 数据类型3. 货币型 用 Currency表示,-922 337 203 685 477
3、.58 到 922 337 203 685 477.5807 4. 日期型 日期类型用来保存日期和时间数据,日期数据要求在日 期时间值前后加上“#“.例如:#12-3-2003#.日期类型用 Date(Time)表示,包含表示日期的数字,日期范围从公元 100年 1月 1日到公元 9999年 12月 31日. 5. 逻辑型 逻辑类型数据主要用来存放逻辑判断的结果,取值为逻 辑值,即 True(真)或False(假).当将其他数据类型转换 为逻辑数据时,非 0转换为 True,0转换为 False. 逻辑类型用 Boolean表示,包含 True或 False. 6. 对象型3.1.2 VBSc
4、ript常量浮点数:浮点数分为单精度浮点数和双精度浮点数. 在科学记数法中,浮点数由尾数,指数符号和指数 3部分组成,其中尾 数本身也是一个浮点数.对于单精度浮点数,指数符号为 E;对于双精 度浮点数,指数符号为 D. 例如:26E-9,-1028.642D18.浮点数也称为实型数. 2. 符号常量 符号常量是用一个标识符表示的常量,用于代替数字或字符串.在 VBScript 提供了许多预定义符号常量,用户可自定义符号常量. VBScript 预定符号常量在使用之前不必定义它们,可以在代码中任意 处使用.例如,vbCrLf 表示回车符和换行符的组合,vbGreen表示绿色 的数值. 用户自定义
5、常量通过 Const语句来创建.例如: Const VBS =“VBScript 脚本语言“ Const PI=3.1415923.2.3 VBScript变量变量可以存储脚本运行时可更改的数据.若强制显式声明所有变量, 可以在脚本程序的开头处使用下面的语句: Option Explicit 1. 声明变量 在 VBScript中,显式声明变量语法格式如下: Dim 变量名, 变量名 在 VBScript中,可以通过赋值语句指定变量的值,此时变量位于等号 的左边,要赋的值位于等号的右边,该值可以是任何数值,字符串,常 数或表达式.例如: Dim kc_1, cj1 cj1=90 cssj1=#
6、1985-1-1# kc_1=“ VBScript脚本语言“ kc_1=cj1 2. 命名规则 变量命名必须遵循 VBScript的标准命名规则.变量的命名规则如下: 第 1个字符必须是字母,不能包含嵌入的句点(.),长度不能超过 255个 字符,在被声明的作用域内必须惟一,不能与 VBScript的关键词相同.3.2.3 VBScript变量3. 变量的作用域与存活期 如果在过程中声明变量,则只有该过程中的代码可以访问或更改变量 值.这种变量过程执行时产生,该过程结束后随之消失.在不同过程中 可以使用同名的变量,这是因为每个变量只被声明它的过程使用. 4. 数组变量 将多个相关值赋给一个变量
7、可使用数组变量.声明数组变量时变量名 后面带有括号().例如,Dim kc(10).所有数组都是基于 0的,所以这个 数组实际上包含11个元素,这种数组称为固定大小的数组. 在数组中,使用数组名和索引来引用数组的每个元素. 语法格式如下: 数组名(索引值)3.2.3 VBScript变量例如: Dim kc(10) kc(1)=“计算机原理“ kc(3)=“数据结构“ kc(2)=“操纵系统“ dqkc=kc(1) 数组并不仅限于一维,数组的维数最大可以为 60,.声明多 60 维数组时,使用逗号分隔括号中表示数组每个维数大小的数字. 例如: Dim cj(40, 5) 语句声明了一个有 6行
8、和 11列的二维数组,其名称为 cj.声明 二维数组时,括号中的第一个数字表示行的最大索引值,第二 个数字表示列的最大索引值. 动态数组是在运行脚本时大小发生变化数组.对动态数组的 最初声明可以使用 Dim语句或 ReDim语句,但括号中不能包含任 何数字.3.2.4 VBScript运算符VBScript运算符包括算术运算符,连接运算符,比较运算符和逻辑运算符 等. 运算符优先级顺序从高到低如下: 算术运算符 连接运算符 比较运算符 逻辑运算符 运算时先括号内后括号外,优先级相同时按照从左到右的顺序执行.同一 种类型的运算符内部也有优先级顺序: 1. 算术运算符 算术运算符及优先级顺序从高到
9、低如下: (指数) -(负号) *(乘法) 或 (整除) Mod(取模) +(加法) 或 (减法) 其中: :指数运算符,计算数值表达式的乘方或方根 / :除法运算符,两个数值相除并返回以浮点数形式表示的结果 :整除运算符,两个数值相除并返回以整数形式表示的结果 Mod:取模运算符,计算两个数值相除的余数 2. 连接运算符 两个表达式 中只要有一个为假,结果即为假. Or:逻辑或运算符,两个表达式中只要有一个为真,结果即为真;两 个表达式同时为假,结果为假. Xor:逻辑异或运算符,两个表达式同时为真或同时为假,结果为真; 两个表达式中有一个为真,另一个为假,结果为假.3.2 基本输入,输出1
10、. MsgBox函数 函数 MsgBox 函数用于在对话框中显示消息,等待用户单击按钮,并返回 一个值指示用户有单击的按钮,语法格式如下: MsgBox(prompt, butons , title , helpfile, contesxt)其中: prompt 参数是显示在对话框中的字符串表达式,其最大长度约是 1024 个字符. buttons 是一个数值表达式,用于指定显示按钮的数目和类型,使用的 图标样式,其默认值为 0. title:是显示在地话框标题栏中的字符串表达式; Helpfile:是字符串表达式,用于标识为对话框提供上下文样关帮助的帮 助文件; Context:是数值表达式
11、,用于标识由帮助文件的作者指定给某个帮助主 题的上下文编号.3.2 基本输入,输出buttons参数的取值 参数的取值组 1 符号常量 vbOKOnly vbOKCancel vbAbortRetryIgnore vbYesNoCancel vbYesNo 2 vbRetryCancel vbCritical vbQuestion vbExclamation vbInformation 3 vbDefaultButton1 vbDefaultButton2 vbDefaultButton3 vbDefaultButton4 4 vbApplicationModal vbSystemModal
12、数值 0 1 2 3 4 5 16 32 48 64 0 256 512 768 0 4096 描述 只显示确定按钮 显示确定和取消按钮 显示放弃,重试和忽略按钮 显示是,否和取消按钮 显示是和否按钮 显示重试和取消按钮 显示临界信息图标 显示警告查询图标 显示警告消息图标 显示信息消息图标 第一个按钮为默认按钮 第二个按钮为默认按钮 第三个按钮为默认按钮 第四个按钮为默认按钮 应用程序模式:用户必须响应消息框才能继 续在当前应用程序中工作 系统模式:在用户响应消息框前,所有应用 程序都被挂起3.2 基本输入,输出第 1组值(05)用于描述对话框中显示的按钮类型与数目: 第2组值(16,32,
13、48,64)用于描述图标的样式: 第 3组值(0, 256, 512, 768)用于确定默认按钮; 第 4组值(0, 4096)则决定消息框样式. MsgBox函数的返回值 函数的返回值符号常量 vbOK vbCancel vbAbort vbRetry vbIgnore vbYes vbNo 数值 1 2 3 4 5 6 7 操作 单击“确定“按钮 单击“取消“按钮 单击“放弃“按钮 单击“重试“按钮 单击“忽略“按钮 单击“是“按钮 单击“否“按钮3.2 基本输入,输出【例 3.1】编写一个 HTML网页,在浏览器中打开该网页时调用MsgBox 】 函数来显示一个信息框并返回单击的按钮的值
14、. 输入下列内容,以 E3_msgbox.HTM作为文件名保存: 先输入姓名, 再显示欢迎你 3.2 基本输入,输出用浏览器将打开文档,将显示如图所示的页面.3.3 基本语句1. 基本语句 VBScript 脚本也是由一系列语句组成的.最常用的语句是赋 值语句,将表达式的值赋给变量或属性. 其语法格式如下: name=exp 其中:name 是变量或属性,exp 是表达式. 如果要将对象引用赋给变量或属性,则不能使用赋值语句, 而应使用 Set语句,其语法格式如下: Set ovar=oexp | New classname | Nothing 其中: ovar 用于指定变量或属性的名称; o
15、exp 是由对象名称,另一个已声明为相同对象类型的变量或 返回相同对象类型的对象的函数或方法组成的表达式. New 关键字用于创建新的类的实例,classname是类名. Nothing 用于停止 ovar与任何指定对象或类的关联.3.3 基本语句2. 条件语句 条件语句有两种形式:即单行形式和块一形式. If 条件 1 Then 语句 1 ElseIf 条件 2 Then 语句 2 Else 语句 3 End If 其中:条件是逻辑表达式,其运算结果是 True或False,如果为 Null, 则被视为 False.条件也可以是形如“TypeOf 对象 Is 对象类型“的表达 式,对象属于指
16、定对象类型,则表达式为True,否则为 False. 如果条件 1为 True,则执行 Then之后的语句.如果条件 1为 False,则 判 ElseIf部分的条件表达式.当找到某个为 True的条件时,则其相关的 Then 之后的语句会被执行.如果没有任何一个 ElseIf语句中的条件是 True, 则将执行 Else之后的语句.3.3 基本语句3. 选择语句 选择语句提供的功能与 IfThenElse语句类似,即根据表达式的值执 行几组语句之一,但它可以使代码更加简洁易读.选择语句语法格式如下: Select Case exp Case 值 1 语句 1 Case 值 2 语句 1 Ca
17、se Else 语句 End Select 其中 exp是任意表达式,如果 exp=值 1,则执行语句 1;如果 exp=值 2, 则执行语句 2;以此类推.如果 exp与多个 Case子句中的值匹配,则只有 第一个匹配的语句被执行.当 exp不匹配所有 Case子句的值时则执行 Case Else后的语句.3.3 基本语句【例 3.4】演示 Select Case语句的使用 】 方法. 输入下列内容,以 E3_select.HTM作为 文件名保存: 飞机航班号查航班的详细信息 请输入飞机航班号: 3.3 基本语句用浏览器将打开文档,将显示如图所示的页面.3.4 循环语句1. DoLoop循环
18、循环 当条件为 True时执行 DoLoop循环体.根据循环条件出现的位置, DoLoop 循环的语法格式分为两种形式. 语法格式 1: Do While | Until 条件 循环体 Loop 语法格式 2: Do 循环体 Loop While | Until 条件 有两种方式检查条件:格式1在进入循环体之前检查条件,格式 2在运行 循环体后检查条件.While关键字表示只要条件为 True,就会继续循环. 一旦条件变成False,则退出循环.Until 关键字表示只要条件为 False,就 会继续循环.一旦条件变成 True,则退出循环. 循环体中使用 Exit Do语句,可退出 DoLo
19、op循环.Exit Do 通常与条件 判断语句(IfThen)一起使用.当用于嵌套 DoLoop中的时候,Exit Do 将 退到所在的上一层循环.3.4 循环语句【例 3.5】编写一个 HTML页面,计算累加和,最大值通过文本框输入. 】 输入下列内容,以 E3_doloop.HTM作为文件名保存: 计算累加和3.4 循环语句1+2+ 用浏览器将打开文档,将显示如图所示的页面3.4 循环语句2. WhileWend循环 循环 WhileWend 语句当指定的条件为True时执行一系列的语 句. 语法格式: While 条件 循环体 Wend 如果条件为 True,则循环体语句被执行,然后控制
20、权返回 到 While语句,并且重新检查条件.如果条件仍为 True,则 重复执行上面的过程. 如果不为 True,则从 Wend语句之后继续执行程序. WhileWend循环可以是多层嵌套结构.每个 Wend与最 近的 While语句对应.3.4 循环语句【例 3.6】用 WhileWend编写计算累加和,最大值通过文 】 本框输入. 仅仅需要修改下列代码,其他相同. 3.4 循环语句3. ForNext循环 循环 ForNext 以指定次数重复执行一组语句.语法格式如下: For 计数变量=初值 To 终值 Step 步长 循环体 Next 其中:计数变量是用做循环计数器的数值变量,不能是
21、数组元素.步长默认值 为 1,步长可以是正数或负数. Exit For 语句提供了退出 ForNext或 For EachNext循环体的方法.Exit For 经常和条件语句(例如:IfThen)一起使用,并将控制权转移到 Next之后的语句. ForNext 循环可以是多层嵌套.每个 For与最近的 next语句对应. 其结构如下所示: For 计数变量 1=初值 To 终值 Step 步长 For 计数变量 2=初值 To 终值 Step 步长 Next Next3.4 循环语句【例 3.7】用 ForNext编写计算累加和,最大值通过文本框输入. 】 仅仅需要修改下列代码,其他相同.
22、如果修改下列代码: For j=1 To max Step 2 s =s+j Next 则 max是奇数计算 1+3+5+ max,max是偶数计算 1+3+5+ max+1.3.4循环语句【例 3.8】编写一个 HTML页面,当单击按钮时显示出前 200个偶数相加的总和. 】 输入下列内容,以 E3_fornext.HTM作为文件名保存: 计算 50个随机数和 用浏览器将打开文档,将显示如图3.5 过程1. Sub过程 过程 Sub 过程是没有返回值的过程,可以用 Sub语句来声明其名称,参数 以及构成其主体的代码. 语法格式如下: Public | Private Sub 过程名 ( 参数
23、表) 过程体 End Sub 其中:Public 表示 Sub过程可以被所有脚本中的所有其他程序访问. Private表示 Sub过程只可以被声明该过程的脚本中的其他过程访问.如 果没有显式地指定使用 Public或 Private,则 Sub过程默认为 Public. 参数表代表在调用时要传递给 Sub过程的变量列表,用逗号隔开多个 变量. 语法格式为: ByVal | ByRef 变量名 ByVal表示该参数是按值传递的,也就是将参数的值而不是地址传递 给过程,并允许过程访问变量的一个副本,但是不能更改变量的实际值; 省略ByVal | ByRef,默认为 ByRef.3.5 过程【例 3.9】编写一个 HTML页面,可以在两个文本框中分别输入内容,当单击按钮 】 时交换两者的内容. 输入下列内容,以E3_sub.HTM作为文件名保存: 如果事件过程比较简单,则可以在定义元素的标记 中直接编写脚本语句. 3.7 HTML事件【例 3.11】编写一个 HTML页面,将鼠标指针移到文字上方时文字改 】 变大小和颜色,将鼠标指针移开时文字恢复原来的大小和颜色. 输入下列内容,以 E3_onhtml.HTM作为文件名保存: 3.7 HTML事件请把鼠标指针移到这里! 用浏览器将打开文档,将显示如图