[设为首页] [加入收藏]    
提 示: 站长书库上线了。 站长招聘上人才沃
站长首页  |  站长下载  |  站长工具
站长素材  |  广告代码  |  网页特效
站长书库  |  站长招聘  |  建站软件
  您当前的位置: 首页 > 网络编程 > ASP教程 >
下一篇:Vbscript内置函数 上一篇:ASP基础
Vbscript语法基础

Vbscript脚本是介于html与Visua Basic之间的一种语言,它更接近于高级语言Visua Basic,但比它简单易学,Vbscript脚本可以在客户端执行,也可以在服务器端执行,asp程序是放在服务器端运行的,将Vbscript代码放在服务器端有两种方法。

方法1

<% Vbscript代码 %>

方法2

<Script Language="Vbscript" Runat="Server">
Vbscript代码
</Script>

在没有asp之前Vbscript代码都是在客户端执行的,使用方法如下所示,但这种使用方法和asp一点关系也没有。

<Script Language="Vbscript"
Vbscript代码
</Script>

虽然VBScript是asp的默认语言,但在服务器上,通过asp运行VBScript时,VBScript的InputBox,MsgBox,CreateObject,GetObject 等将不被支持。

第一节 数据类型

数据类型描述变量可以包含的信息的种类。在VBScript中将各种各样的信息统统归纳在一起叫做Variant类型,然后在Variant的子类型中再进行详细分类,Variant类型的特点是根据变量的值自动判断子类型,并根据情况自动进行转换,不必事先对变量进行数据类型声明。我们可以将Variant简单分成如下几种子类型:

1 数值类型

为各种各样的数值,在Variant中分得很详细,有:

(1)Byte

包含 0 到 255 之间的整数。

(2)Integer

包含 -32,768 到 32,767 之间的整数。

(3)Currency

包含-922,337,203,685,477.5808 到 922,337,203,685,477.5807。

(4)Long

包含 -2,147,483,648 到 2,147,483,647 之间的整数。

(5)Single

包含单精度浮点数,负数范围从 -3.402823E38 到 -1.401298E-45,正数范围从 1.401298E-45 到 3.402823E38。

(6)Double

包含双精度浮点数,负数范围从 -1.79769313486232E308 到 -4.94065645841247E-324,正数范围从 4.94065645841247E-324 到 1.79769313486232E308。

在选取数据的类型时,要根据实际需要进行,如果能够使用小的就尽力选用小的,这样占用内存较少,运行速度比较快。

2 字符串类型

字符串类型的数据用string表示,要放在双引号之间。

3 日期类型

日期类型的数据用Date表示,要放在双#号之间,如:#2005-1-26#

4 布尔类型

布尔类型的数据用boolean表示,有两个值true,false,布尔值和数字有如下关系数字false相当于0,true相当于-1。

5 对象类型

对象类型的数据用Object表示

6 空值

空值Null表示不含任何数据。

7 未定义

未定义Empty表示数据未被初始化,也就是变量没有被赋值。

8 错误数据

错误数据Error包含错误号。

第二节 常量与变量

常量指的是在程序运行过程中其值保持不变的量,它用来保存固定不变的数值,字符串等常数,和其它编程语言一样,常量已经声明,其值就不能被更改了,这和变量不同,其后如果你写了pi=8将是无效的,在vbscript中使用指令const定义常量,例如:

const const_a = "学习"
const PI = 3.14159

变量是一种使用方便的占位符,用于引用计算机内存地址,该地址可以存储脚本运行时可更改的程序信息。使用变量并不需要了解变量在计算机内存中的地址,只要通过变量名引用变量就可以查看或更改变量的值。

1 变量声明

在VBScript中可以在未经声明的情况下就使用变量,但这不是一个好习惯,使用变量之前应该首先声明变量,在asp文件中声明变量的方法是使用dim语句,如下所示:

声明一个变量a

<%
dim a
%>

声明两个变量a和b

<%
dim a,b
%>

2 为变量赋值

声明了变量就可以使用变量保存数据了,将一个数据保存到变量中去,使用赋值运算符"="。如下所示:

示例 sl2-1.asp

<html>
<head><title>asp简单程序</title></head>
<body>
<%
dim a
a="我们开始学习asp了"
response.write(a)
%>
</body>
</html>

示例解读:

程序首先使用dim语句声明了一个变量a,然后使用赋值运算符"=",将文本数据"我们开始学习asp了",保存到变量a中,文本数据是字符串类型的,所以要放在双引号中。最后使用asp输出指令显示变量a中的内容。

将数据保存到变量中,然后使用变量来引用该数据,叫变量引用,为什么在编程中常常使用引用而不是直接使用结果呢,这是因为当一个很大的数字或者一个表达式很长时,书写起来是很麻烦的,而使用一个变量表示它就方便的多,更容易阅读。

2 变量的命名规则

变量或常量在命名时要注意的是:第一个字符要用英文字母,不能使用数字,中间也不能使用标点符号和运算符,还要注意避开关键字,如:dim,sub,end,等

下面的变量名是错误的

(1) 5am (不能用数字开头)
(2) a.cb (不能包含标点符号)
(3) if (不能使用关键字)

3 变量的作用域

变量的作用域也叫生命期,可见性,定义域等,他决定了变量可被访问的范围,在asp中根据变量的作用域可以划分出局部变量,全局变量,会话变量,应用程序变量;

(1)局部变量 指的是在过程内部定义的变量,在过程外部不能访问

(2)全局变量指的是在过程外部声明的变量,也叫页面变量,能够被asp同一页面上的所有脚本访问和修改

(3)会话变量和应用程序变量,这两种变量的对于所有页面都是可见的,会话变量是单个用户存储信息的最佳选择,例如存储用户名,用户标识,首选项等,应用程序变量是针对所有用户的,是一种大家都能操作的变量,在asp中这两种变量分别存贮在Session对象和Application对象中。

第三节 数组

1 一维数组

数组指的是:具有相同数据类型的一组数据按照一定的顺序构成的数据集合, 实际上就是一组内存地址的标记符号, 声明数组也使用关键字dim,只不过数组名后面要带一个圆括号,括号中填写数组长度;

示例 sl2-2.asp

<html>
<head><title>asp简单程序</title></head>
<body>
<%
dim sum '声明一个变量sum
Dim myarray(3) '声明长度为3的数组
myarray(0)=1 '为第0位数组元素赋值
myarray(1)=2 '为第1位的数组元素赋值
myarray(2)=3
myarray(3)=4
'对所有数组元素的值求和
sum=myarray(0)+myarray(1)+myarray(2)+myarray(3)
response.write(sum)
%>
</body>
</html>

程序解读
一维数组类似于标了号码的一排装货箱子,对于这一排箱子,我们可以给它起一个名字,比如叫做myarray,不过对他们进行标号时,是从0开始的,例如现在有5个箱子,其标号为0,1,2,3,4;每个箱子里都放着一些物品,这些物品叫数组的元素,现在我们要把1个鸡蛋放到第一个箱子中,把5个鸡蛋放到第二个箱子中我们就写

myarray(0)=1个鸡蛋
myarray(1)=5个鸡蛋

2 二维数组

二维数组类似于棋盘的格子,每个格子的交叉点就是数组的一个元素。二维数组的元素需要两个下标,第一个下标表示行号,第二个下标表示列号。

示例 sl2-3.asp

<html>
<head><title>asp简单程序</title></head>
<body>
<%
Dim sum
Dim ar(4,5) '声明一个5行6列的二维数组
ar(1,2)=1
ar(2,3)=2
ar(4,1)=3
sum=ar(1,2)+ar(2,3)+ar(4,1)
response.write(sum)
%>
</body>
</html>

示例解读:

示例声明了一个5行6列的二维数组,这个数组可以有很多元素,但我们只给其中的三个元素进行了赋值,其它元素没有值都是空元素,对二维数组的元素进行定位时,使用行索引和列索引,要定位第三行第四列的元素,我们就写ar(2,3),注意索引号从零开始。

3 动态数组

动态数组指的是空数组,就是声明一个没有元素的数组,在需要的时候用redim添加元素;当用redim多次添加元素时,只保留最后添加的redim数组元素,前面的会被清空;如果要使前面的不被清空,可以使用redim preserve来为数组添加元素;

示例 sl2-4.asp

<html>
<head><title>asp简单程序</title></head>
<body>
<%
Dim myarray() '定义一个动态数组
redim myarray(2) '重定义数组含有3个元素
myarray(2)="asp" '为新定义的数组的最后一个元素赋值
redim myarray(5) '再次定义数组
myarray(5)="flash" '为数组第六个元素赋值
response.write(myarray(2)) '输出myarray(2)的值
response.write(myarray(5)) '输出myarray(5)的值
'结果只显示myarray(5)的值而myarray(2)被清空了
%>
</body>
</html>

示例 sl2-5.asp

<html>
<head><title>asp简单程序</title></head>
<body>
<%
Dim myarray() '定义一个动态数组
redim myarray(2) '重定义数组含有3个元素
myarray(2)="asp" '为新定义的数组的一个元素赋值
redim preserve myarray(5)'再次定义数组,使用了preserve
myarray(5)="flash" '为新定义的数组的一个元素赋值
response.write(myarray(5))
response.write( myarray(2))
'结果保留了myarray(2)的值,显示flashasp
%>
</body>
</html>

第四节 运算符

运算符优先级,当表达式包含多种运算符时,首先计算算术运算符,然后计算比较运算符,最后计算逻辑运算符。使用括号可以更改这种顺序,程序总是先执行括号中的运算符,然后再执行括号外的运算符。

1 算术运算符

+ 加

- 减

* 乘

/ 除

\ 取整除法

mod 取模

^ 幂

2 连接运算符

+ 连接字符串

& 连接字符串

示例 sl2-6.asp

<html>
<head><title>asp简单程序</title></head>
<body>
<%
dim a1,b1,c1
a1=2
b1=3
c1=a1+b1
response.write(c1) '程序执行求和运算显示:5
response.write("<br>")

dim a2,b2,c2,c3
a2="认真学习"
b2="asp"
c2=a2+b2
c3=a2&b2
response.write(c2) '程序执行连接运算显示:认真学习asp
response.write("<br>")
response.write(c3) '程序执行连接运算显示:认真学习asp

dim a3,b3,sum
a3=5
b3="25"
sum=a3+b3
response.write("<br>")
response.write(sum) '字符串b3被转换成了数字显示:30
%>
</body>
</html>

示例解读:

"+"号连接两个数字程序执行求和运算,连接两个字符串程序执行连接运算,要执行连接运算时最好使用 & ,本例还说明了Vbscript具有数据类型自动转换功能(Variant类型的特点)。

示例 sl2-7.asp

<html>
<head><title>asp简单程序</title></head>
<body>
<%
dim a,b
a=5 mod 2
response.write(a) '显示1
response.write("<br>")
b=7 mod 4
response.write(b) '显示3
%>
</body>
</html>

示例解读:

mod音译为“模”,故叫取模运算,通常也叫取余运算,运算时首先进行除法运算然后取余数,取余运算并不在乎其商是多少,目的只是获取余数,例如5/2余1,我们使用余数1去参加运算,称为数字5对数字2的余,取余运算常常用于奇偶判断,范围控制等,如c=x mod 4,x无论是多少c的值永远不会大于4。

3 比较运算符

比较运算符用于对两个数据进行比较,两个数据必须是相同类型的数据,返回的结果一般是一个布尔值,比较运算符或由其构成的表达式,常常应用于条件语句中;

= 等

> 大于

< 小于

>= 大于等于

<= 小于等于

<> 不等于

Is 比较两个对象是否相等

示例 sl2-8.asp

<html>
<head><title>asp简单程序</title></head>
<body>
<%
dim a,b,c
a=5 '为变量a赋值
response.write(a) '返回5
response.write("<br>")
response.write(a=5) '返回True
response.write("<br>")
b=a=5 '为变量b赋值
response.write(b) '返回True
response.write("<br>")
response.write(b=a=5) '返回False
response.write("<br>")
response.write(b=a=0) '返回True
%>
</body>
</html>

示例解读:

在等号"="运算符组成的表达式中,要返回等号左边的变量时,等号"="会做为赋值运算符参与运算,要返回表达式的值时,等号会做为比较运算符参与运算。

4 逻辑运算符

逻辑运算符一般总是用在条件语句中进行逻辑判断,下面是三个比较重要的逻辑运算符。

(1)And 逻辑与

格式: a And b

说明:当a和b都为true时返回true,否则返回false

示例 sl2-9.asp

<%
dim a,b,c
a=true
b=true
c=false
response.write a '返回true
response.write "<br>"
response.write b '返回true
response.write "<br>"
response.write a And b '两者为true返回true
response.write "<br>"
response.write a And c '两者任一个为false则返回false
%>

(2)Or 逻辑或

格式: a Or b

说明:如果a与b有一个为true则返回true

示例 sl2-10.asp

<%
dim a,b,c
a=true
b=true
c=false
response.write a Or b '两者为true返回true
response.write "<br>"
response.write a Or c '两者任一个为true则返回true
%>

(3)Not 逻辑非

格式: Not a

说明:说明:如果a为true则返回false,如果a为false则返回true

示例 sl2-11.asp

<%
dim a,b
a=true
b=false
response.write Not a 'a为true返回false
response.write "<br>"
response.write Not b 'b为false返回true
%>

    关于我们 - 联系我们 - 广告服务 - 网站地图 - 版权声明 - 人才招聘