|
主题: 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
|
|
 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
明白了 谢谢
|