310 likes | 471 Views
1 、熟悉在 ASP 页面中使用 VBScript 2 、了解各种数据类型常量的表示方法,变量的定义和作用域; 3 、熟悉有关字符、日期、类型转换等常用函数的用法; 4 、条件分支和循环控制程序以及过程与函数调用的概念和结构,应达到“领会”和“简单应用”的层次; 5 、熟悉数组的定义和使用,应达到“简单应用”的层次 教学重点 1 、常用函数和各种类型的表达式; 2 、条件分支程序和循环控制程序以及过程与函数调用;。 教学难点 数据类型;常用内部函数的用法。.
E N D
1、熟悉在ASP页面中使用VBScript 2、了解各种数据类型常量的表示方法,变量的定义和作用域; 3、熟悉有关字符、日期、类型转换等常用函数的用法; 4、条件分支和循环控制程序以及过程与函数调用的概念和结构,应达到“领会”和“简单应用”的层次; 5、熟悉数组的定义和使用,应达到“简单应用”的层次 教学重点 1、常用函数和各种类型的表达式; 2、条件分支程序和循环控制程序以及过程与函数调用;。 教学难点 数据类型;常用内部函数的用法。
VBScript作为目前流行的脚本语言,是ASP的宿主语言,为Microsoft所推荐。它以其简单的语法、完善的功能,既可作为客户端编程语言,也可作为服务器端编程语言。VBScript作为目前流行的脚本语言,是ASP的宿主语言,为Microsoft所推荐。它以其简单的语法、完善的功能,既可作为客户端编程语言,也可作为服务器端编程语言。 VBScript既可作为客户端编程语言,也可作为服务器端编程语言。
介于HTML和VB、Java等之间的一种语言,更接近高级语言。介于HTML和VB、Java等之间的一种语言,更接近高级语言。 源于VB,简单易学。 一、 VBScript概述 用户在HTML文件中可直接嵌入VBScript脚本,从而扩展HTML,使其不仅仅是一种页面格式语言,而且还可以对用户的操作做出反应。 VBScript既可作为客户端编程语言,也可作为服务器端编程语言。客户端脚本由Web浏览器处理。服务器端脚本则是在Web服务器上执行生成代码,然后发送到浏览器,在浏览器上收到的只是执行后的标准HTML文件。不管在客户端执行还是在服务器端执行,其语句的声明均放入<script>……</script>标记中。
二、VBScript数据类型及运算符 1、数据类型 只有一种Variant变体型数据类型。随着使用方式的不同,Variant可以包含不同类型的信息,即这种数据类型可以根据用途的需要选择最合适的子类型来存储数据。
2、VBScript的运算符 包括算术、字符串(连接)、逻辑和比较4种运算符。 1. 算术运算符 除加减乘除(/)外,还有经常使用的取余(Mod)、求幂(^)及整除(\)等。如:5 Mod 3,结果为2;5 ^ 3结果为125;5 \3结果为1。 2. 字符串(连接)运算符 有“&”或“+”两种,用于进行字符串连接。 “&”经常用,因为连接符“+”与算术运算符的加号“+”类似,所以当表达式两边都是数值时,会根据运算符的优先级将“+”默认为表示相加。 3. 逻辑运算符 最常用的有与(And)、或(Or)、非(Not)三种,返回值为:真(True)或假(False)。 4. 比较运算符 最常用的有等于(=)、不等于(<>)、小于(<)、大于(>)、小于等于(<=)、大于等于(>=)6种,用于将表达式两边的值做出比较,其返回值为:真(True)或假(False)。
三、VBScript变量与常量 1、变量的声明与赋值 变量代表能够存储程序信息的内存位置的符号,程序运行过程中可以进行调用变量或者改变变量值等操作。并不需要知道具体的变量在内存中的地址,只需要调用变量名就可以实现对变量的引用。如前所述,VBScript中的数据类型只有Variant一种,所以变量的类型也都是Variant类型的。 命名变量就是为变量取个名字。变量名称要遵循VBScript命名的标准规则:必须以字母开头,不能包含句点,长度在255个字符内且在其作用域内必须是惟一的。 声明变量要用Dim,语法结构为:
dim 变量名1,变量名2,变量名3,变量名n 声明一个或多个变量,在声明多个变量时用“,”分割变量名 当变量定义好后,就可以给变量赋一个值,语法结构为: 变量名=值 将“值”赋给变量名。
2、数组的定义 一个变量如果包含多于一个的相关数值,就称为数组。数组的定义也使用Dim 一维数组 二维数组 动态数组 定义元素
3、定义常量 常量的值,在程序中是不变的,其命名规则与变量的命名规则一样。在VBScript中定义常量使用Const语句,语法结构为: const 常量名=值 将值赋给常量名,如: const a="星期一" '字符串常量,必须用双引号(" ")括起来 const a=30 '数值常量 const a="---" '字符串常量 const a=#30/8/2005# '日期常量,必须用井号(#)括起来
四、VBScript常用函数 1、数字运算函数 取绝对值 四舍五入 格式:Abs(<数值表达式>) 功能:返回数值表达式的绝对值。如果输入的数值大于等于零,返回的数值就会等于输入的数值;相反小于等于零,则会去掉负号输出,如: Abs(5)=5 Abs(-5)=5 Abs(0)=0 格式:CInt(<数值表达式>) 功能:将表达式的值的小数部分四舍五入后,返回一个整数值,如: CInt(5.2)=5 CInt(5.6)=6 开平方 格式:Sqr(<数值表达式>) 功能:返回数值表达式值的平方根。要求数值表达式的值大于等于0,如: Sqr(16)=4 Sqr(23)=4.79583152331272 取整 格式:Int(<数值表达式>) 功能:返回数值表达式值的整数部分,如: Int(5.2)=5 Int(5.6)=5
截取字符串 2、字符串函数 左截取:Left(<字符串表达式>,<截取的位数值>) 右截取:Right(<字符串表达式>,<截取的位数值>) 中间截取:Mid(<字符串表达式>,<从第几位>,[截到第几位止]) 如: Left("VBScript函数有哪些",5) 结果为:VBScr Right("VBScript函数有哪些",5) 结果为:函数有哪些 Mid("VBScript函数有哪些",5) 结果为:ript函数有哪些 Mid("VBScript函数有哪些",5,9) 结果为:ript函 字符串长度检测 格式:Len(<字符串表达式>) 功能:检测字符串表达式的长度,并返回一个整数值,如: Len("1234") 结果为:4 Len("计算机") 结果为:3 Len("VBScript函数") 结果为:10 大小写转换 小写转大写:Ucase(<字符串表达式>) 大写转小写:Lcase(<字符串表达式>) 如: Ucase("AbcdEfg") 结果为:ABCDEFG Lcase("AbcdEfg") 结果为:abcdefg 去除字符串中的空格 左边空格:Ltrim(<字符串表达式>) 右边空格:Rtrim(<字符串表达式>) 两端空格:Trim(<字符串表达式>) 如: Ltrim(" 先生 ") 结果为:“先生 ” Rtrim(" 先生 ") 结果为:“ 先生” Trim(" 先生 ") 结果为:“先生”
3、日期函数 (1) 取系统当前的日期:Date (2) 取系统当前的时间:Time (3) 取系统当前的日期及时间:Now 如: document.write(Date) 结果为:2005-7-12 document.write(Time) 结果为:16:27:42 document.write(Now) 结果为:2005-7-12 16:28:18
4、数据类型转换函数 数字转换成字符串 转换成数字 格式:Str(<数值表达式>) 功能:将数值表达式表示的数字转换成字符串,如: Str(80) 结果为:“80” Str(-80.12) 结果为:“-80.12” 格式:Val(<字符串表达式>) 功能:将字符串表达式表示的字符串内的字符型数字转换成数值型数字,如: Val("222永州") 结果为:222 Val("2.5 78") 结果为:2.578 字符转换成字符代码 转换为日期型数据函数 格式:Asc(<字符串表达式>) 功能:返回一个整型数,代表字符串表达式表示的字符串首字母的字符代码,如: Asc("A") 结果为:65 (即大写字符A的ASCII码) 格式:Cdate(<表达式>) 功能:按表达式的值返回日期型数据,表达式是任何能有效地表示日期的表达式,如数值表达式,字符串表达式,日期表达式。 (1) 整数:当输入的参数为一个整数时,除了0会输出时间外,其他的情况都会输出与“1899-12-30”这天相差的天数,如: Cdate(0) 结果为:0:00:00 Cdate(1) 结果为:1899-12-31 Cdate(2) 结果为:1900-1-1 (2) 小数:当输入的参数为一个带有小数的数字时,将整数部分转换为日期,小数部分转换为从午夜起算的时间。如: Cdate(1.1) 结果为:1899-12-31 2:24:00 字符代码转换成字符 格式:Chr(<字符代码>) 功能:返回与指定的字符代码相关的字符,如: Chr(97) 结果为:a (即在ASCII码中的小写字符a) Chr(13) 结果为:回车符 (即在ASCII码中的回车符)
5、其他函数 产生选择框 产生输入框 格式1:Confirm(" [提示信息] ") 功能:用来产生一个选择框,等待用户做出选择。 如: Confirm("是否真的这样选?") 用来产生一个接收用户输入信息的输入框。 格式1:Inputbox(" [提示信息] ") 如: Inputbox(“请输入您的姓名:”) 格式2:Prompt(" [提示信息]") 如: Prompt("请输入您的姓名:") 格式2:MsgBox("<提示信息>,[数值] ") 功能:用来产生一个选择框,等待用户做出选择。不同的返回值表示用户按下了不同的按钮。 <提示信息>参数为必选项,是作为消息显示在对话框中的字符串表达式。其最大长度,大约是1 024个字符,这取决于所使用的字符的宽度。 [数值]为数字,可选,表示指定显示按钮的数目和类型、使用的图标样式,默认按钮的标识及消息框样式的数值的总和。如果未指定,则默认值为0,表示只显示一个“确定”按钮;指定1,表示显示“确定”、“取消”两个按钮;指定2,表示显示“终止”、“重试”、“忽略”3个按钮;指定3,表示显示“是”、“否”、“取消”3个按钮;指定4,表示显示“是”、“否”两个按钮;指定5,表示显示“重试”、“取消”两个按钮。 产生提示框 格式:Alert(" [提示信息] ") 功能:用来产生一个弹出式的警告框,其图标为一个警告标识。如: alert("恭喜您通过!")
五、VBScript语句 1、条件语句 根据条件实现程序分支的控制结构。 特点:根据所给定的选择条件为真(即条件成立)或为假,从各分支中执行某一分支的相应操作,并且在任何情况下均有“无论分支多寡,必择其一;纵然分支众多,仅选其一”的特性。 判断用户输入的口令字是否正确 If…Then...Else…End if <html> <body> <script language="vbscript"> dim hd mm="1234" hd=inputbox("请输入你的密码:") if hd<>mm then alert("你的密码不正确!") else alert("密码正确,欢迎你的光临") end if </script> </body> </html> 格式:if <条件> then [命令1] else [命令2] end if 功能:如果条件成立,执行Then后的命令;反之,如果条件不成立,执行Else后的命令。
<html> <body> <h2>根据不同的考试成绩确定等级</h2> <script language="vbscript"> dim cj cj=inputbox("请输入你的考试成绩:") if cj<60 then alert("等级评定为:差") elseif cj>=60 and cj<80 then alert("等级评定为:中") elseif cj>=80 and cj<90 then alert("等级评定为:良") elseif cj>=90 and cj<=100 then alert("等级评定为:优") else alert("你输入的成绩有问题!") end if </script> </body> </html> If…ElseIf…End if 格式:if <条件1> then [命令1] [elseif <条件2> then 命令2] [elseif <条件3> then 命令3] …… [else 命令n] end if
在多个条件中进行选择的更好方法是使用Select case…End select语句。 格式:Select case <测试表达式> [case <表达式表1> [命令1]] [case <表达式表2> [命令2]] … [Case else [命令n]] end select select case cj case 50 alert("等级评定为:差") case 70 alert("等级评定为:中") case 80 alert("等级评定为:良") case 90 alert("等级评定为:优") case else alert("你输入的成绩有问题!") end select
2、循环语句 可以根据条件实现程序循环执行的控制结构,有当型循环和直到型循环两种结构,其他循环结构可以看作这两种结构的变型。 (1) 当型(While):当给定条件为True时,重复执行语句;否则循环语句停止执行,而执行下面的语句。 (2) 直到(Until)型:一直重复执行一组语句,直到给定的条件为True时停止,然后执行下面的语句。 (3) 变形体(For)循环:将一组语句按照指定的循环次数重复执行后,再执行下面的语句。
For…Next For Each…Next For Each...Next语句是对数组中的每个元素或对象集合中的每一项都执行一组相同的操作。如果不知道数组元素或对象集合中项目的具体数目时,For Each...Next尤其有用。其语句格式为:
<html> <head> <script language="vbscript"> sub xm() '定义xm过程,无参数。注:无参数也必须加上() dim name name=prompt("请输入您的姓名") document.write("欢迎您," & name & "!" & "<p>") end sub sub pf(a) '定义pf过程,参数为a dim s s=a*a document.write("A的平方=" & s) end sub </script> </head> <body> <script language="vbscript"> call xm '调用xm过程 a1=prompt("请输入A值:") call pf(a1) '调用pf过程,并将实际参数a1的值传递给形式参数a </script> </body> </html> 六、VBScript过程和自定义函数 1、Sub子过程 定义过程:Sub <子过程名><([形参])> [命令] End Sub 调用过程:Call <子过程名>[([实际参数])]
<html> <head> <script language="vbscript"> function s(bc) '定义s函数,参数为bc s=bc*bc end function </script> </head> <body> <script language="vbscript"> b=inputbox("请输入正方形的边长:") document.write ("<font size=5 color=blue>正方形的面积为:</font>") '以下s(b)为调用s函数,并将实际参数b传递给了形式参数bc document.write (s(b)) </script> </body> </html> 2、Function函数 定义函数:Function <函数名><([形参])> [命令] End Function 调用函数:<函数名>[([实际参数])]
3、变量的作用域和生存期 变量的作用域是指变量所起作用的范围,变量声明的位置不同,其作用域也不同。如果一个变量在过程内声明,则称其为局部变量,因为它只能在这个过程中使用,用于在过程中临时存放数据。如果一个变量在过程外声明,则称其为全局变量,它不仅可在过程内使用,也可在过程外使用(即整个程序中使用),用于存放整个应用程序公用的数据。 变量的生存期指变量的存活期。对于全局变量,其生命周期是从它被声明起一直到整个脚本运行结束才结束;而对于局部变量,其生命周期是从过程或函数被执行的时刻开始到过程或函数执行结束。所以,局部变量是用于存取临时数据的。
七、使用VBScript对象编程 1、Document对象 Document是使用最多的对象。文档就是在浏览网页时所看到的页面,包括其中的文本、链接和表单等。
2、Window对象 Window对象即浏览器窗口。浏览一个页面时,就打开了一个Window对象。
在打开页面时弹出一个空白的小窗口 <html> <head> <script language="vbscript"> function openwin() setOpenWindow=window.open("gg.htm","new","height=60,width=300,toolbar=no,status=no,menubar=no,scrollbars=no,resizable=no") '注意写在一行 end function </script> </head> <body onload=openwin()> </body> </html> 图上可看到弹出了一个300×60大小的小窗口。“gg.htm”为弹出的小窗口里所要显示的网页,此处gg.htm文件为空白的页面。toolbar、status、menubar、scrollbars等参数可设置小窗口的工具栏、状态栏、菜单栏及滚动条的有无;resizable设置是否可让浏览者改变小窗口大小;width、height设置小窗口的宽度及高度。
根据不同时间显示不同问候信息 <script language="vbscript"> dim i i=hour(time()) if i>=0 and i<6 then document.write("凌晨好!") end if if i>=6 and i<8 then document.write("早上好!") end if if i>=8 and i<12 then document.write("上午好!") end if if i>=12 and i<18 then document.write("下午好!") end if if i>=18 and i<24 then document.write("晚上好!") end if </script> 程序中用到VBScript中日期函数。Time()取系统当前的时间;Hour()取出时间的小时数,若当前时间为19:01:22,经i=hour(time())后,i的值为19。
八、综合实例 状态栏走马到成灯效果 设置浏览器状态栏上的文字在Web页面上经常可见,下面例子将会在状态栏上显示当前时间,并一秒一秒地不间断走。 <script language="vbscript"> sub change() status="现在时间:" & time() settimeout "change()",1000 end sub sub window_onload() change end sub </script>
在客户端与在服务器端运行VBScript脚本有何区别?分别应如何声明?在客户端与在服务器端运行VBScript脚本有何区别?分别应如何声明? • 在HTML中如何使用VBScript中脚本? • 在VBScript脚本语言中,如何使用HTML标记语言?