VBScript中变量作用域
作者:xujiwei 来源:HotHeart's BLOG 发布时间:2007-11-02 10:03:00
标签:VBScript,作用域,变量,JavaScript
下午在写程序的时候,碰到个变量重定义的问题,具体是在一个函数中的两个地方定义了相同的变量,两个变量分别放在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开发中,写一个函数时通常的做法是变量到用时才定义,虽然变量的作用域与定义的位置无关,不过我觉得还是写在变量使用之前比较好,以后改起代码来比较方便,不至于修改了一段代码之后还要翻到函数头去修改变量定义。


猜你喜欢
- #pd.to_datetime函数#读取数据import pandas as pddata = pd.read_csv('polic
- 如何做一个计数器并让人家申请使用? 第一步:创建一个计数器(最简单的数字计数器,不是图片式的):&nbs
- 情景互动广告是指需要广告画面外的物体来参与的广告,例如:ps:这是我收集的,大家慢慢看吧!其中有大多数收集http://www.netnoe
- Python字典的key都可以是什么答一个对象能不能作为字典的key,就取决于其有没有__hash__方法。所以所有python自带类型中,
- 很多小伙伴都会有这样的问题,说一个ip地址十分钟内之内注册一次,用来防止用户来重复注册带来不必要的麻烦逻辑:取ip,在数据库找ip是否存在,
- 目录一、建立画布二、用plt.subplot函数建立坐标系,并分别绘制折线图和柱状图三、完整代码如下所示四、对应效果图如下所示一、建立画布i
- 一、说明早上看到Python使用pickle进行序列化和反序列化,然后发现面临的一个获取不到返回值的框架,似乎可以通过在框架中先序列化,然后
- 本文实例讲述了Python面向对象思想与应用。分享给大家供大家参考,具体如下:面向对象思想1、面向对象的设计思想面向对象是基于万物皆对象这个
- 本文通过一个详细的例子,来阐述了在线编辑XML文档数据的方法。由于Netscape对XML的支持比较弱,因此,要实现跨平台的数据交换,数据的
- 1. 案例【三酷猫列表记账】操作需求:(1)用列表对象记录三酷猫每天钓鱼的种类和数量(2)统计三酷猫所钓水产品的总数量和预计收获金额(3)打
- 1. 使用到的库① wxpy:初始化微信机器人② openpyxl:保存微信好友数据为Excel表格③ pyecharts:生成可视化的地图
- 首先,了解下原理。1,提供文本框进行查询内容的输入2,将查询信息提交页面程序处理3,程序页主要作用:接受查询信息,根据此信息调用特定的SQL
- 前言日常工作中我们经常接触到一些文本类信息,需要从文本中解析出数据信息,然后再进行数据分析操作。而对文本类信息进行解析是一件比较头秃的事情,
- 本文实例讲述了js实现三张图(文)片一起切换的banner焦点图。分享给大家供大家参考。具体如下:这是一款基于javascript实现的三张
- 这篇文章主要介绍了基于python3抓取pinpoint应用信息入库,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习
- JQuery计算滚动条长度和位置,代码如下:javascript<script type="text/javascript&
- 看到网上有一篇文章,是介绍如何做网站测试的.从一开始的链接测试,页面内容测试,到浏览器兼容性测试,负载压力测试,一直到最后的安全性测试,甚至
- Python开发最牛逼的IDE——pycharm(其实其它的工具,例如eclipse也可以写,只不过比较麻烦,需要安装很多的插件,所以说py
- 1 存储过程1.1 什么是存储过程存储过程是一组为了完成某项特定功能的sql语句集,其实质上就是一段存储在数据库中的代码,他可以由声明式的s
- 1. yum list installed | grep php 查看安装的php版本mod_php72w.x86_64 7.2.1-1.w