2010-07-12 135 views
-1

我有“A”变量的脚本标签,并已初始化为16,但是当我在onclick事件上的IE使用警报,我收到取消定义,而不是16的Javascript全局变量

这是IE浏览器问题6?

例如

<script type="text/javascript"> 
var A =16; 
</script> 

<a href="" onclick="javascript:alert(A);">undefine</a> 
+1

你介意发布一个代码示例产生的问题? – 2010-07-12 22:29:53

回答

3

我想它受到一些轻微的粗心造成的打赌......

作为在把VAR的变量前面把这个变量到本地范围仅在Javascript和可变delcaration没有它( a = 16)是全球性的。

function test() { 
    a = 16; 
    var b = 16; 

} 
test(); 

alert(a); # alerts 16 
alert(b); # throws error, b is undefined 
+0

我有点困惑,为什么这是被拒绝投票。 – corrodedmonkee 2010-07-13 14:01:45

+0

只需添加,只需查看它。我所说的是正确的,除了如果我有var c = 16,并且test()内部的相关警报有效的话。 无论如何,这听起来像一个范围问题。 – corrodedmonkee 2010-07-13 14:11:19

+0

+1有用的信息,试图回答一个相当模糊的问题(不知道为什么你被拒绝了)。这可能是一个范围问题;它也可能是一个错字! ;) – MrWhite 2010-07-13 18:35:52

-1

您需要发布您正在讨论的内容的示例,但问题可能出在您的脚本标记所在的位置以及您要从中调用变量的位置。

+0

把这样的评论作为评论下的问题,而不是一个答案。 – 2010-07-12 22:55:08

+0

@Gert G我没有给出至少一半的答案。 :) – qw3n 2010-07-13 15:55:29

+0

一个非常模糊的。而为了记录...我没有给你一个-1。 – 2010-07-13 19:30:11

0

这是全局和局部变量的只是一个简单的概念。当你运行该方法的变量,它是全球已经得到了它的价值,这是当地的,也得到了价值,但其生命周期到期变量因此它抛出的错误是未定义的