vbs学习,书籍,看书笔记(2)

导航

1.对象(object)子类型
2.复杂数据类型,数组定义以及遍历
3.Option Explicit的介绍
4.变量命名
5.过程sub的语法
6.函数function的语法
7.三个变量作用域

1.对象(object)子类型
对象:含有对象引用的变量就是object子类型,具有属性(properties)与方法(methods)

创建FileSystemObject对象
引用IsObject()函数,销毁对象,对是否销毁进行判断

dim objFSO
dim boolExists
set objFSO = wscript.createobject("scripting.filesystemobject")      'set用于修改对象变量的值
if IsObject(objFSO) then      'isobject判断是否为对象
	boolExists = objFSO.fileExists("C:\Users\93997\Desktop\vbs练习\学习") '应当是文件中的东西,单是文件会不存在
	msgbox typename(boolExists)
	msgbox boolExists
	set objFSO = nothing		'对象使用完之后要销毁对象,不占内存
	if objFSO is nothing then	'并且进行判断是否被销毁
		msgbox "对象已经被销毁"
	endif
end if

————————————————————————————————————————

2.复杂数据类型,数组,定义以及遍历
数组:存放同一类数据类型的数据,最多有六十维
声明:dim arrlist(5)——一维数组,dim arrlist(2,4)——二维数组(列,行)

例如存放下面数组:

小王12
小花13

第一种方式,静态数组:

'定义数组,初始化数组和遍历数组
dim arrlist(2,4)		'定义一个二维数组(列,行)
arrlist(0,0) = "小王"	'存储数据
arrlist(0,1) = "12"
arrlist(0,2) = "男"
arrlist(1,0) = "小花"
arrlist(1,1) = "13"
arrlist(1,2) = "女"

第二种方式动态数组,二维数组声明只需要后面加()

'动态定义数组
dim arrlist(),str					'定义二维数组名arrlist()后面进行动态开辟,str用于后面输出
Redim preserve arrlist(2,0)  '意思是开辟了21arrlist(0,0) = "小王"
arrlist(1,0) = "12"
arrlist(2,0) = "男"           '第一行初始化结束
redim preserve arrlist(2,1)   '开辟第二行
arrlist(0,1) = "小花"
arrlist(1,1) = "13"
arrlist(2,1) = "女"		    '第二行初始化结束
'进行遍历
lngUboud = UBound(arrlist,2) '获取到数组中有几行,然后进行遍历 1为列数 2位行数
for i=0 to lngUboud          '遍历0-lngUboud的行数
	str = str & arrlist(0,i) & ","
	str = str & arrlist(1,i) & ","
	str = str & arrlist(2,i) &  vbNewLine    '加上换行字符
next
msgbox str

运行结果
在这里插入图片描述

删除数组:Erase arrlist
对于静态与动态有细微不同
静态:会将其中数据删除,元素本身依旧存在——只是被清空了,可以** Ubound访问
动态:会将数组元素以及数据全部删除,若想恢复只能使用redim,行列也无法用
Ubound**访问了

vbScript只支持一种数据类型varient,但是varient有许多子类型

————————————————————————————————————————

3.Option Explicit的介绍
在vbs中,你可以不声明变量,并且可以随时使用新变量名
不用其的缺点是:假设你并没有定义变量名,在使用过程中如果输入错误的变量名,系统也还是会默认其为新的变量名,并且给它赋新的类型empty,并赋值为0

采用option explicit:系统会要求所有的变量在使用前都要进行显式声明
要养成好习惯加上Option Explicit

————————————————————————————————————————

4.变量命名

1.变量名第一个必须是字母
2.除了_其他符号不允许使用
3.长度不能超过255
4.可以提示这个变量是什么类型如:strname,代表了name是string类型

————————————————————————————————————————

5.过程sub的语法
过程的具体代码块用sub关键字
声明过程
在这里插入图片描述
注意

在sub前可以加Public或者Private指定状态
实际上vbs是被孤立的文件,外部无法访问,所以Public及Private作用也并不大
没有指定的话就默认为Public

调用无参过程

Option Explicit
print
sub print
	msgbox "hello world"
end sub

调用有参过程

Option Explicit
print "mjj"     			 '只需要在后面追加就行
sub print(strUserName)    '后面为参数
	msgbox "hello " &strUserName
end sub

————————————————————————————————————————

6.函数function的语法

函数语法
在这里插入图片描述

内部耦合越紧密,其复杂性也越高——不要在一个句子中有两个输出
如下

Option Explicit
GreetUser 			'调用过程

sub GreetUser '过程
	msgbox "hello" & getUserName   '在一个句子中既要输出,又要进行输入,那么会先执行函数,再进行打印输出
end sub

function getUserName		'函数
	getUserName = inputbox("请输入您的名字:")   '进行返回值
end function

结论:尽量不要在同一个句子中这样进行输入或者输出

更改一下

Option Explicit
GreetUser getUserName 			'调用过程 传入参数

sub GreetUser(strUserName) '过程
	msgbox "hello" & strUserName   '这样这里只是一个普通的输出
end sub

function getUserName		'函数
	getUserName = inputbox("请输入您的名字:")   '进行返回值
end function

传参数的方式可以放在()中,也可以在后面直接添加
在这里插入图片描述
在这里插入图片描述

msgbox也可以作为函数,也有返回值

Option Explicit
dim info
info = msgbox("would you like apple",vbYesNo)   '返回对应数值
msgbox info

————————————————————————————————————————

7.三个变量作用域

脚本级作用域: 变量不能超过127个
过程级作用域: sub,function 变量不能超过127个
类级作用域: class

private只能在脚本域中或者类级中进行使用
private脚本级中使用作用与dim,public作用相同

Option Explicit
private a     '用于在脚本级中使用,作用与dim,public作用一样
a = 10
abc
function abc
	msgbox a	'函数中一样能够访问
end function
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

长路 ㅤ   

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值