2010-07-12 139 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

這是全局和局部變量的只是一個簡單的概念。當你運行該方法的變量,它是全球已經得到了它的價值,這是當地的,也得到了價值,但其生命週期到期變量因此它拋出的錯誤是未定義的