可能重複:
Difference between using var and not using var in JavaScript爲什麼沒有var?
似乎愚蠢的問題,但只是好奇。
num = "hello";
alert(num);
爲什麼這是可能的我在這裏沒有初始化num變量。
num = "hello";
代替
var num = "hello";
可能重複:
Difference between using var and not using var in JavaScript爲什麼沒有var?
似乎愚蠢的問題,但只是好奇。
num = "hello";
alert(num);
爲什麼這是可能的我在這裏沒有初始化num變量。
num = "hello";
代替
var num = "hello";
var
意味着「範圍這個變量此功能」而不是「有可能使用這個變量」。
如果您關閉var
,則它將使用該函數下一個範圍內的變量。如果該範圍沒有var yourVar
,那麼它將繼續向上擴展範圍鏈,直到它變爲全局範圍並懸掛在window
對象(假設瀏覽器或其他默認對象爲window
的JS環境)。
(這改變strict mode,你大概是沒有使用。)
請注意,在ECMAScript 5 Strict Mode中,這種分配是不允許的 –
因此num =「hello」是一個帶有hello字符串的變量字符串? – user1393669
@ user1393669:這並不複雜。 var所做的就是改變變量的範圍。沒有其他的。除範圍之外,'num = 5'相當於'var num = 5'(同樣,在*非* -strict模式下)。也看看我鏈接到的問題,它包含更多信息。 –
沒有var
關鍵字的變量在全球範圍內(window
下瀏覽器)創建的。
如果添加var
,則只需將該變量分配給當前作用域,該作用域在大多數情況下都是函數作用域。
一般來說,使用函數作用域會更好,以免污染全局作用域並防止多個同名變量之間的衝突!
請閱讀一些文檔:https://developer.mozilla.org/en/JavaScript/Reference/Statements/var並請在您提出新問題之前進行搜索。 –