版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Web 程序设计 第 3 章,VBScript脚本语言,2,目标,VBScript的数据类型 变量和常量,运算符 用户交互函数和过程的使用 流程控制结构 创建VBScript过程 使用VBScript内置函数 重点: 流程控制,子过程和函数过程,3,3.1 脚本语言概念,脚本(script)语言的概念源于Unix系统,在Unix系统中,将主要以行命令组成的命令集称为Shell脚本程序。 常用脚本语言有:JavaScript、VbScript、和用于编写CGI脚本的Perl,Shell Script 等。 脚本语言分为客户端脚本语言和服务器端脚本语言,前者在客户端执行,后者在服务器端执行。 客户
2、端默认脚本语言为JavaScript,服务器端默认的脚本语言为VbScript。 使用客户端脚本可以:为用户提供交互、动态修改内容、检验数据、集成,4,VBScript语言,VBScript语言是一种与Visual Basic相类似的程序设计语言,与Visual Basic语法基本相同,但功能上限制比较多; VBScript与JavaScript一样,是嵌入于HTML中的,可以设计出生动活泼、互动的Web pages和Web-based应用程序 ; VBScript可以在客户端和服务器端执行; VBScript是面向对象的程序设计语言,在VBScript的服务器端程序中,ASP对象很重要。,5
3、,3.2 在网页中嵌入VBScript代码的方法, 动态网页示例 script代码块,默认由客户浏览器执行 - ,图3-1 动态网页浏览结果,6,在网页中嵌入VBScript代码的方法,说明: (1)标记的作用是嵌入VBScript代码。该标记的一般格式如下: VBScript代码序列 标记可以出现在HTML文档的任何地方(body或head部分之中),但最好将所有的一般目的的脚本代码放在head部分中,使所有脚本代码集中放置。这样可以确保在body部分调用代码之前所有脚本代码都被读取并解释。 一般将标记中的代码块放在HTML的注释符号“”之间。 (2)网页代码中的标记“”的作用是嵌入ASP代
4、码,可以根据需要在其中编写VBScript脚本程序。注意:“”之间的代码将由服务器解释执行。,7,3.3 VBScript语言的写书规则,(1)程序代码中不区分字母的大小写; (2)一行可以写多条语句,语句之间用“:”分隔; (3)一条语句也可以写在若干行上,但需在每行末尾加上续行标记空格和下划线“ _”; (4)一行的长度不得超过255个字符; (5)在代码中可合理地使用注释,注意以“”开头,可以自占一行,也可以直接出现在语句的后面。,8,3.4 数据类型,可变型数据类型Variant 由各种子数据类型构成 可存储任何子类型的值 支持自动转换各种子类型,9,3.5 变量和常量,一、变量 定义
5、程序执行时可以改变的量 语法 命名规则,Dim x Dim a, b, Left, Right,(1) 变量名只能由字母、数字和下划线组成。 (2) 变量名的第一个字符必须是字母。 (3) 变量名中间不能有空格。 (4) 变量名中不能包含小数点。 (5) 变量名的字符数目不得超过255个字符。 (6) 不能用VB的关键字作变量名。 (7) 变量名不能与过程名和符号常量名相同。 (8) 变量名在同一个作用域内必须是惟一的。,10,3.5 变量和常量,二、常量 定义程序执行时保持不变的数据 分类 直接常量 符号常量(内部常量、用户声明常量),Const mystring=这是一个常量 Const
6、myage=100 Const CutoffDate =#3-16-2003 13:20:15#,11,例1 求圆的周长。 常量 const Pi = 3.14 定义圆周率为常量 dim r,length r = 3 length = 2* Pi*r MsgBox “圆的半径为:” & r & vbCrLf & “圆的周长为:” & length ,12,3.5 变量和常量,三、数组 定义一组相同类型的变量的集合 分类 静态数组 动态数组,Dim 数组名(最大下标) Dim array1(2) Dim array2(2,3),Dim 数组名( ) Dim myarray( ) Redim pr
7、eserve 数组名(新的最大下标值) Dim datanum() Redim datanum(10),13,3.5 变量和常量,三、数组 示例, Dim A(10) A(0)=256 A(1)=324 A(10)=55 Document.write(A(0) Document.write(“”) Document.write(A(9) Document.write(“”) Document.write(A(10) , Dim A( ) Redim A(25) A(0)=256 A(1)=324 Redim Preserve A(30) A(30)=30 Document.write(A(0)
8、 Document.write(“”) Document.write(A(1) Document.write(“”) Document.write(A(30) ,用于向当前网页输出内容,其内容可以是纯文本,也可以是文本与HTML标记的组合,14,例2 动态数组示例。,15,3.6 运算符,一、算术运算符:+、-、*、/、(整除)、Mod(取余)、(乘方) 二、字符串运算符 “&”与“+”的区别 三、比较运算符: = 、 、 、 =,“计算机” & 1234 结果为”计算机1234” “22” & 1234 结果为”221234” 22 + 1234 结果为1256 “计算机” + 1234 出
9、错,16,3.6 运算符,四、逻辑运算符,17,3.7 用户交互函数和过程,一、InputBox函数 作用产生一个输入框,等待用户输入文本或选择一个按钮,当用户单击确定按钮或按回车键,函数返回文本框中输入的内容。 语法,InputBox(“提示”,“标题” ,“缺省值” ,“x坐标位置” ,“y坐标位置”) useraccount= InputBox(请输入您的账号,账号输入框,”A31007”),18,3.7 用户交互函数和过程,二、MsgBox函数和MsgBox过程 作用产生一个信息框,等待用户选择一个按钮。MsgBox函数会返回一个值指示用户选择的按钮,若不需返回值,则可用MsgBox过
10、程。 语法 “图标名称”和“按钮名称”的含义,MsgBox函数: MsgBox(“显示内容”,图标名称|按钮名称,“标题”) MsgBox过程: MsgBox “显示内容”,图标名称|按钮名称,“标题”,19,3.7 用户交互函数和过程,三、例4 利用InputBox函数提供一个输入框输入姓名,然后用MsgBox显示输入的姓名。 用户交互函数的应用 dim strname strname=InputBox(请输入您的姓名,姓名输入框“ Msgbox 您的姓名是 & strname,显示姓名 ,20,四、例5 判断输入帐号 用户交互函数的应用 dim account,i Do account=I
11、nputBox(请输入账号,输入账号对话框) i=Msgbox(你的账号是:& account &vbCrLf &是否重输?,vbYesNo+VbExclamation,显示账号) Loop until i=vbNo ,21,3.8 流程控制结构,一、选择结构 If语句 单分支结构的If语句 双分支结构的If语句 多分支结构的If语句 Select Case语句,语法: If 表达式 Then 语句块 End If 或: If 表达式 Then 语句,22,例6 改变网页背景颜色 单分支结构的If语句 If time=#0:0:0# and time End If 上午和下午网页的背景颜色不同
12、 ,23,3.8 流程控制结构,一、选择结构 If语句 单分支结构的If语句 双分支结构的If语句 多分支结构的If语句 Select Case语句,语法: If 表达式 Then 语句块 Else 语句块 End If,24,例7 判断是否输入姓名。 双分支结构的If语句 dim name, message name = InputBox(请输入您的姓名:) If name= Then message = 您未输入您的姓名! Else message = 您的姓名是: & name & 。 End IF MsgBox message ,25,3.8 流程控制结构,一、选择结构 If语句 单分
13、支结构的If语句 双分支结构的If语句 多分支结构的If语句 Select Case语句,语法: If 表达式1 Then 语句块1 ElseIf 表达式2 Then 语句块2 Else 语句块n End If,26,例8 当用户浏览网页时,能根据浏览时间的不同显示不同的问候语:,27,3.8 流程控制结构,一、选择结构 If语句 单分支结构的If语句 双分支结构的If语句 多分支结构的If语句 Select Case语句,语法: Select Case 表达式 Case 值1 语句块1 Case 值2 语句块2 Case Else 语句块n End Select,28,例9 根据成绩显示不同
14、的字句。, Select Case语句 option explicit dim score, message score = InputBox(“请输入成绩:”) 等待用户输入成绩 Select Case True case Score ,29,3.8 流程控制结构,二、循环结构 计数循环语句ForNext 适用用于循环次数确定的循环结构 语法 功能执行循环体中的程序代码指定次数,在循环中使用循环变量,该变量值随每一次循环增加步长,步长缺省为1。,For 循环变量=初始值 to终止值 Step 步长 程序代码 Next,30,例10 实现求1到100的和。 for i=1 to 100 sum
15、=sum+i next 例11 输出九九乘法表。,31,3.8 流程控制结构,二、循环结构 数组循环语句For EachNext 适用常用于数组或对象集合 语法 功能用“变量名”代替数组中的每一个元素或对象集合中的每一项,对于数组中的每一个元素或对象集合中的每一项重复执行循环体中的程序代码。,For Each 变量名 In 数组名或对象集合 程序代码 Next,32,例13 用For EachNext循环输出数组中各元素的值。 dim score,i,message score=Array(97, 83, 68, 90, 70,54) 创建一个有6个元素的成绩数组 用循环输出每个成绩 For
16、Each i In score 此时数组只需写数组名,不必须加括号 message=message & i & chr(13) & chr(10) next MsgBox message ,33,3.8 流程控制结构,二、循环结构 条件式循环语句DoLoop 适用常用于循环次数未知的循环结构 分类 当型DoLoop 直到型 DoLoop,34,当型DoLoop,DoLoop While 执行循环代码并对循环条件进行求值, 重复执行直到循环条件为 False Do WhileLoop 只有在循环条件为 True 时才执行循环代码,重复执行直到循环条件为 False,如果想在条件表达式为 True
17、(而不是False)时才执行循环语句,可使用 While 关键字。,35,当型DoLoop,对比流程图,循环条件,代码,假,真,循环条件,代码,真,假,DoLoop While,Do While Loop,注意都是在循环条件为假时退出,36,直到型DoLoop,DoLoop Until 执行循环代码并对循环条件进行求值, 重复执行直到循环条件为 True。注意代码至少会执行一次 Do UntilLoop 只有在循环条件为 False 时才执行循环代码,重复执行直到循环条件为 True。循环结构中的代码可能一次都不执行,37,直到型DoLoop,对比流程图,DoLoop Until,Do Unt
18、il Loop,注意都是在循环条件为真时退出,38,例14 用Do Loop循环语句求1到100的平方和。 DoLoop循环 n=1 s=0 Do while n ,39,3.8 流程控制结构,二、循环结构 WhileWend循环 适用常用于循环次数未知的循环结构 语法 功能先判断表达式的值,若值为True,则执行循环体中的程序代码,否则退出循环,执行Wend后的语句。,While 表达式 程序代码 Wend,40,例15 用WhileWend循环语句求1到100的平方和。 WhileWend循环 n=1 s=0 While n ,41,3.9 VBScript过程,定义:过程是完成某种特定功
19、能的一组独立的程序代码 分类:子过程和函数过程 区别:函数过程可以在执行结束的时候返回一个值给调用它的程序,而子过程不返回值。,42,3.9 VBScript过程,一、子过程 例16 子过程的定义。, 子过程 msgbox 现在执行子过程外的语句 Sub a msgbox 现在执行子过程内的语句 End Sub ,43,3.9 VBScript过程,一、子过程 调用子过程 语法,方式一: Call 子过程名(参数1,参数2,) 方式二: 子过程名参数1,参数2, ,44,3.9 VBScript过程,一、子过程 调用子过程 例17 无参数子过程的定义及调用。, 无参数子过程的定义及调用 a m
20、sgbox 现在执行子过程外的语句 Sub a msgbox 现在执行子过程内的语句 End Sub ,45,3.9 VBScript过程,一、子过程 调用子过程 例18 有参数 子过程的 定义及调用。, 有参数子过程的定义及调用 dim a,b,c a=15 b=20 c=4 maxnum a,b,c 调用子过程 Sub maxnum(x,y,z) 定义子过程 dim max if xy then max=x else max=y end if if zmax then max=z msgbox “最大的数为:” & max End Sub ,46,3.9 VBScript过程,一、子过程
21、终止执行子过程(Exit Sub) 例19 子过程的中止。, 子过程的中止 b Sub b document.write “子过程被中止前” exit sub document.write 子过程被中止后 该语句不会执行到 End Sub ,47,3.9 VBScript过程,二、函数过程 定义函数过程 语法 调用函数过程直接引用函数过程名,Function 函数过程名(参数1,参数2,) 程序代码 函数过程名=返回值 End Function,48,3.9 VBScript过程,二、函数过程 例20 函数过程 的定义及调用。, dim a,b,c a=15 b=20 c=4 msgbox(“
22、最大数是:” & maxnum(a,b,c) Function maxnum(x,y,z) dim max if xy then max=x else max=y end if if zmax then max=z maxnum=max End Function ,49,3.9 VBScript过程,三、变量的作用域 定义指变量的有效范围 ,变量的作用域由它声明或出现的位置决定 分类 局部变量 全局变量 例21 变量作用域示例:,局部变量是在过程内部声明或出现的变量,其作用域仅局限于定义它的过程,只在该过程内有效,离开相应过程,变量会失效而变为空。,全局变量是在过程外部声明或出现的变量,其作用
23、域为当前整个ASP网页,在当前网页的各个脚本程序块内有效。,50,3.10 VBScript的内置函数,一. 字符串函数 二. 数学函数 三. 转换函数 四.日期和时间函数 五.检验函数 六.数组相关的函数,51,3.10 内置函数一. 字符串函数,52,3.10 字符串函数举例, x=一二三四五六七八九十/一个汉字长度为1 document.write len(x) & for i=16 to 87/显示各区汉字 x= for j=1 to 94 x=x & & chr(160+i)*256 +160+j) /在Unicode码中(双字节),一个汉字只占一个字符位 if j mod 20 =
24、0 then x=x & next document.write x & next ,53,3.10 内置函数二. 数学函数,54,产生随机数,例22 产生五个1100之间的随机整数。 Rnd函数 产生5个1-100的随机整数 for i=1 to 5 randomize document.write Int(Rnd*100+1) & next ,55,3.10 内置函数三. 转换函数,56,3.10 内置函数四.日期和时间函数,57,利用日期时间函数求日期或时间,例23 日期时间函数示例。 时期时间函数 document.write 现在是: & now() & document.write
25、 今天的日期是: & date() & document.write 现在的时间是: & time() & document.write 今天是: & year(date)& 年 & month(date) & 月 & day(date) & 日 & document.write 现在是 & hour(now) & 时 & minute(now) & 分 & second(now) & 秒 & document.write 今天的星期代号是: & weekday(date) & document.write 今天是: & weekdayname(weekday(date) & document
26、.write 到五一节还有 & datediff(d,date,#2006-5-1#) & 天 & ,58,3.10 内置函数五.检验函数,59,例24 用IsNumeric函数判断一个变量中的数据是否由数字组成。 IsNumeric函数 检验变量中的值是否数字 dim myvar myvar=53 mycheck=IsNumeric(myvar) MsgBox mycheck 显示True myvar=459.95 mycheck=IsNumeric(myvar) MsgBox mycheck 显示True myvar=45Help mycheck=IsNumeric(myvar) MsgB
27、ox mycheck 显示False ,60,3.10 内置函数六.数组相关的函数,61,例25 数组相关函数示例。 数组相关函数 创建一个数组并输出数组中的元素 dim myweek, myday myweek = Array(Mon, Tue, Wed, Thu, Fri, Sat, Sun) For i=Lbound(myweek) to Ubound(myweek) document.write myweek( & i & )= & myweek(i) & Next ,62,JavaScript 有六种数据类型。 主要的类型有 number、string、object 以及 Boole
28、an 类型,其他两种类型为 null 和 undefined。 变量命名:JavaScript 是一种区分大小写的语言,因此将一个变量命名为 computer 和将其命名为 Computer是不一样的。 变量命名规则: 1.第一个字符必须是一个字母(大小写均可)、或一个下划线(_)或一个美元符 ($)。 2.后续的字符可以是字母、数字、下划线或美元符。 3.变量名称不能是保留字。,补充:了解JavaScript,63,JavaScript所提供的语句分为以下几大类: 1、变量声明,赋值语句:var。 语法如下: var 变量名称 =初始值 例:var computer = 32 /定义computer是一个变量,且有初值为32。 2、函数定义语句:function,return。 语法如下: functio
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 航空航天采购合同协议书
- 沈阳理工大学《C++程序设计》2022-2023学年期末试卷
- 2024居间合同样本
- 2024试用期内是否要签合同
- 2024中外合资经营企业合同制造厂
- 2024家装装修的合同范本
- 糖尿病蛋白质的摄入
- 4人合伙人协议书(2篇)
- 租赁协议书(2篇)
- 关于银行实习日记模板汇编六篇
- 分数乘除法整理复习(课堂PPT)
- 杭州会展业发展与对策研究文献综述
- 小学六年级英语上册《Unit 1 How can I get there》教案
- 完整版方法验证报告模板最终
- 电力管道资料表格(共30页)
- 大班科学活动教案《豆豆家族》含PPT课件
- 【精品试卷】部编人教版(统编)一年级上册语文第一单元测试卷含答案
- 金属有机化学ppt课件
- 铜包铝线标准
- 数学说题稿(共4页)
- 门球协会章程
评论
0/150
提交评论