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
  • asp之家 网络编程 m.aspxhome.com