日期:2014-05-17  浏览次数:20838 次

关于asp变量的问题
刚才去了一下百度提问了一个问题

是关于下面这段代码的

<script   language= "vbscript ">  

dim   a1  

sub   aa()  
dim   a1
a1=123
end   sub  

sub   bb()  
dim   a1
a1= "456 "
end   sub  
</script>  


<span   onclick= "aa() "   style= "cursor:hand "> 调用 </span>  
<span   onclick= "bb() "   style= "cursor:hand "> 清除 </span>  

有一个高手跟我这样说

高手跟我说: "一般来说,在全局里定义了的变量是不能在过程里再定义的. "

他说的是不是错误的呀,下面是我说的,大家看看我说的对不对呀

我是这样理解的,在过程外的这个dim   a1是全局变量,而在aa()过程和bb()过程里定义的这两个a1变量
是各自独立的变量,也就是各自相互独立的过程变量,与过程外申明的这个dim   a1全局变量
根本没有什么关系.所以允许全局里定义的变量还可以在过程里再定义!



------解决方案--------------------
1、在页面中定义的变量是页面级全局变量,可以直接在过程(或函数)中直接使用。
2、在过程(或函数)中定义的变量则只能在该过程/函数中使用。
3、他们互不影响。
4、为了避免在过程/函数中不能正常使用页面级全局变量,应该尽量避免定义和页面级全局变量重名的变量。