主题:  JavaScript中一个奇怪的现象

比特空间

职务:普通成员
等级:3
金币:10.0
发贴:853
注册:2002/6/16 11:56:52
#12002/7/14 20:07:53


也许很多人认为输出的结果是3,但是结果却是4,我非常不明白,按照javascript中内部变量和外部变量的定义,结果应该是3啊,为什么变成4了?

编辑历史:[这消息被塔布里斯编辑过(编辑时间2002-07-14 20:10:20)]


=ridincal=

职务:管理员
等级:7
金币:20.0
发贴:5886
注册:2004/1/13 11:47:04
#22002/7/14 21:02:39
很多人认为是3??
不会吧?
a=3;
a=a+1;
a=3???当然是4 啦



玫儿

职务:普通成员
等级:1
金币:1.0
发贴:173
注册:2002/6/24 23:58:43
#32002/7/14 21:09:04
。。。



5D荣誉斑竹

职务:普通成员
等级:2
金币:10.0
发贴:622
注册:2001/10/21 13:06:17
#42002/7/14 22:45:55
javascript只有在函数中var定义的变量才是局部变量,否则全部是全局变量

像你刚才在函数中用到的a变量,其实是全局变量 ;)



比特空间

职务:普通成员
等级:3
金币:10.0
发贴:853
注册:2002/6/16 11:56:52
#52002/7/15 7:58:17
a=a+1是在{}里面啊 算出来的是4应该是内部变量 而document.writeln(a)输出的是外部变量的a 所以是3 我是这么理解的 楼上的你说“只有在函数中var定义的变量才是局部变量,否则全部是全局变量”那么a已经用var定义过了 应该是局部变量 但是后面又说这个a是全局变量 很矛盾啊 我还是不明白

编辑历史:[这消息被塔布里斯编辑过(编辑时间2002-07-15 07:59:11)]


5D荣誉斑竹

职务:普通成员
等级:2
金币:10.0
发贴:622
注册:2001/10/21 13:06:17
#62002/7/15 9:20:49
在你的程序中a是一个全局变量~~~



比特空间

职务:普通成员
等级:3
金币:10.0
发贴:853
注册:2002/6/16 11:56:52
#72002/7/15 10:17:00
你的意思是a=a+1是全部变量? var a=3是局部变量?



5D荣誉斑竹

职务:普通成员
等级:2
金币:10.0
发贴:622
注册:2001/10/21 13:06:17
#82002/7/15 11:56:18
晕~~

我是说不清楚了

下面的2段代码你自己测试一下,对比一下。




------------------------------------------------------------




编辑历史:[这消息被sTarsjz编辑过(编辑时间2002-07-15 12:00:02)]


比特空间

职务:普通成员
等级:3
金币:10.0
发贴:853
注册:2002/6/16 11:56:52
#92002/7/15 15:45:51
明白了 谢谢