VBScript入门篇

                                                      作者:尹正杰

版权声明:原创作品,谢绝转载!否则将追究法律责任。

 

 

一.定义一个过程

 

 1 定义一个过程:可以将相同的操作的代码提取出来,方便其他人来调用这段代码,可以减少你的代码的重复性
 2 
 3 
 4 Option Explicit
 5 '@author :yinzhengjie
 6 'blog:http://www.cnblogs.com/yinzhengjie/tag/VBScript/
 7 'EMAIL:y1053419035@qq.com
 8 
 9 
10 '定义一个数组
11 Dim ary_1(2)
12 ary_1(0) = 100
13 ary_1(1) = 200
14 ary_1(2) = 300
15 
16 
17 '定义一个过程的方法,Sub表示一个过程的开始,End Sub表示一个过程的结束标识符
18 Sub max_number(num_1,num_2,num_3)
19 Dim max
20 If num_1 > num_2 Then
21 max = num_1
22 Else
23 max = num_2
24 End If 
25 If num_3 > max Then max = num_3
26 MsgBox "最大值是:" & max
27 End Sub
28 
29 
30 '调用一个过程的方法,用call方法实现,或者是不用,两种区别不大,就是前者有括号,后者无括号
31 Call max_number(1,2,3) '需要用括号将参数传递进去
32 Call max_number(ary_1(0),ary_1(1),ary_1(1))
33 max_number 4,5,6 '如果不用call调用过程的话,后面传参不需要用括号包裹起来。

 

 

二.定义一个函数

 1 定义一个函数:
 2 
 3 Option Explicit
 4 '@author :yinzhengjie
 5 'blog:http://www.cnblogs.com/yinzhengjie/tag/VBScript/
 6 'EMAIL:y1053419035@qq.com
 7 
 8 '定义一个数组
 9 Dim ary_1(2),max
10 ary_1(0) = 100
11 ary_1(1) = 200
12 ary_1(2) = 300
13 
14 '定义一个函数,Function表示函数的开始标识符,End Function 表示函数的结束标识符.sub(过程)能实现的Function(函数)都能实现,而且Function比sub功能更加强大,因为它有返回值,请看案例:
15 Function  max_number(num_1,num_2,num_3)
16     If num_1 > num_2 Then
17         max_number = num_1
18     Else
19         max_number = num_2
20     End If 
21     If num_3 > max Then  max_number = num_3
22     'Exit Function表示退出函数
23 End Function 
24 
25 '调用函数的方法
26 max = max_number(ary_1(0),ary_1(1),ary_1(2))
27 MsgBox "最大值是:" & max

 

三.ByRef 和 ByVal 语句区别:

 1 ByRefByVal 语句区别:
 2 
 3 Option Explicit
 4 '@author :yinzhengjie
 5 'blog:http://www.cnblogs.com/yinzhengjie/tag/VBScript/
 6 'EMAIL:y1053419035@qq.com
 7 
 8 '定义一个数组
 9 Dim ary_1(2),max
10 ary_1(0) = 100
11 ary_1(1) = 200
12 ary_1(2) = 300
13 
14 Function max_number(byval num_1,byref num_2,num_3)
15 MsgBox num_1 & "#"  & num_2
16     num_1 = 666666
17     num_2 = 888888
18     
19     MsgBox num_1 & "#" & num_2
20 End Function
21 
22 max_number ary_1(0),ary_1(1),ary_1(2)
23 MsgBox ary_1(0) & "#" & ary_1(1)
24 
25 '通过以上的这个案例,我们可以总结如下:
26 'ByVal :表示该参数是按值方式传递的。这个只能让局部生效
27 'ByRef :表示该参数按引用方式传递。表示在局部变量如果改动了某个变量的值,那么会全局生效!
28 '所以不建议用ByRef,因为你只要稍微不注意,就会在全局改变这个变量,我们一般使用的是ByVal

 

五.变量的作用域与存活期

  变量的作用域由声明它的位置决定。如果在过程中声明变量,则只有该过程中的代码可以访问或更改变量值,此时变量具有局部作用域并且是过程级变量。如果在过程之外声明变量,则该变量可以被脚本中所有过程所识别,称为 Script 级变量,具有脚本级作用域。我们可以通过一个脚本来判断作用域,方便我们理解

 1 Option Explicit
 2 '@author :yinzhengjie
 3 'blog:http://www.cnblogs.com/yinzhengjie/tag/VBScript/
 4 'EMAIL:y1053419035@qq.com
 5 
 6 Dim  num
 7 
 8 num = 100
 9 
10 getmax
11 
12 MsgBox num '全局变量
13 
14 Function getmax()
15     Dim num
16     num = 666  '局部变量,而且局部变量的名称和全局变量名称重复
17     MsgBox num  
18     num = 888   '修改局部变量所对应的值
19     MsgBox num
20 End Function 
21 
22 '建议实际生产环节中不要在局部变量和全局变量的变量名定义相同的哟,我这里是为了测试,方便大家理解。

  

  变量存在的时间称为存活期。Script 级变量的存活期从被声明的一刻起,直到脚本运行结束。对于过程级变量,其存活期仅是该过程运行的时间,该过程结束后,变量随之消失。在执行过程时,局部变量是理想的临时存储空间。可以在不同过程中使用同名的局部变量,这是因为每个局部变量只被声明它的过程识别。

 1 Option Explicit
 2 '@author :yinzhengjie
 3 'blog:http://www.cnblogs.com/yinzhengjie/tag/VBScript/
 4 'EMAIL:y1053419035@qq.com
 5 
 6 Dim ary_1(2),max
 7 ary_1(0) = 100
 8 ary_1(1) = 200
 9 ary_1(2) = 300
10 
11 '获取两个值中的最大值
12 Public Function get_num(num_1,num_2)
13     pass '我是为了举列子,此处就用pass代替代码了
14 End Function
15 
16 
17 Public Function get_max(num_1,num_2)
18      get_num 100,200 '调用Public类的函数,不会报错!
19 End Function 
Public 公有的属性可以被其他函数调用

相关文章:

  • 2022-01-10
  • 2021-07-19
  • 2021-06-19
  • 2021-06-21
  • 2021-05-13
  • 2022-01-13
  • 2021-07-29
  • 2021-07-07
猜你喜欢
  • 2022-01-09
  • 2021-05-26
  • 2021-05-26
  • 2021-08-16
  • 2021-07-19
  • 2022-01-11
  • 2022-02-17
相关资源
相似解决方案