VBScript中变量作用域
作者:xujiwei 来源:HotHeart's BLOG 时间:2007-11-02 10:03:00
下午在写程序的时候,碰到个变量重定义的问题,具体是在一个函数中的两个地方定义了相同的变量,两个变量分别放在IF语句的两部分中,本来以为这两次定义在语句中不同的块,应该没有影响,然而在运行中IIS却提示变量重定义,把重复定义去掉即正确。
解决了问题之后突然想到在Fdream的blog看过一篇文章《JavaScript变量无块级作用域》,似乎这两个是差不多的,在VBScript中变量同样没有块级作用域。
再次去看了那篇文章之后我也做了下试验,得到结果:在VBScript中,函数中定义的变量的作用域是整个函数,而不是块级,不管这个变量是在函数中哪个位置定义的。因此,函数中一个变量不管在函数的哪个位置定义,它在整个函数中都可以使用。
下面用一些例子来说明这个问题。
Option Explicit
Sub foo()
Dim var
var="hello,world!"
MsgBox var
End Sub
Call foo()
下面的代码跟上面的代码等效,但是var的定义放在了函数的最后:
Option Explicit
Sub foo()
var="hello,world!"
MsgBox var
Dim var
End Sub
Call foo()
下面的例子说明变量不管在哪定义,在整个函数中都是可以使用的,当然如果把定义的位置放的特殊一点有利于代码的清晰,阅读起来比较方便,修改时也比较方便。
Option Explicit
Sub foo()
Dim var1
var1="YES"
MsgBox "var1: "&var1&vbCrLf&"var2: "&var2
IF var1="YES" Then
Dim var2
var2="NO"
End IF
MsgBox "var1: "&var1&vbCrLf&"var2: "&var2
End Sub
Call foo()
在ASP开发中,写一个函数时通常的做法是变量到用时才定义,虽然变量的作用域与定义的位置无关,不过我觉得还是写在变量使用之前比较好,以后改起代码来比较方便,不至于修改了一段代码之后还要翻到函数头去修改变量定义。
来源地址:http://www.xujiwei.cn/blog/?id=685
标签:VBScript,作用域,变量,JavaScript
0
投稿
猜你喜欢
Python中FTP服务与SSH登录暴力破解的实现
2022-12-14 13:25:43
Python中循环后使用list.append()数据被覆盖问题的解决
2023-02-08 20:45:49
Bootstrap实现响应式导航栏效果
2023-08-13 15:32:13
python反反爬虫技术限制连续请求时间处理
2023-08-27 13:53:04
PHP实现二维数组中的查找算法小结
2023-09-08 05:08:24
django实现更改数据库某个字段以及字段段内数据
2024-01-26 14:52:09
my sql存储过程学习总结
2011-07-12 19:12:35
pytest使用@pytest.mark.parametrize()实现参数化的示例代码
2022-07-17 07:54:01
MySQL普通表如何转换成分区表
2024-01-15 00:30:43
Python内存泄漏和内存溢出的解决方案
2022-02-10 11:46:55
关于Ajax在浏览器中产生前进后退的实现方法
2010-01-29 13:01:00
Python3自动生成MySQL数据字典的markdown文本的实现
2021-04-29 15:21:18
Numpy 将二维图像矩阵转换为一维向量的方法
2022-09-21 03:11:01
Python统计文本词汇出现次数的实例代码
2022-01-11 02:13:14
MYSQL数据库中cmd命令操作详解
2024-01-18 16:08:01
ThinkPHP5集成JS-SDK实现微信自定义分享功能
2023-06-10 13:59:47
tensorflow 重置/清除计算图的实现
2023-07-23 00:41:58
15个用户体验设计剖析
2010-05-11 16:43:00
php注册和登录界面的实现案例(推荐)
2024-04-30 08:48:47
SQL Server中的文件和文件组介绍
2024-01-14 06:57:45