28,409
社区成员




<%
sub a()
aa="1"
response.write aa&"-"
end sub
for i=1 to 3
call a()
response.write TypeName (aa)
response.write aa&"|"
next
%>
运行结果:1-Empty|1-String1|1-String1|
sub过程中直接输出的aa有值,但是call第一次输出aa是空值,后面不论多少次就有值了,见鬼了。
当你第一次运行 TypeName (aa) 时 aa 再全局是未申明的,sub a()中使用的变量不会申明到全局,所以是结果Empty。
当第一次运行到response.write aa&"|" 时,全局申明了aa变量,从此之后所有地方都是用的全局变量aa,结果就是String
在TypeName(aa)
中,aa
被认为是一个未定义的变量