2012-05-14 60 views

回答

6

var意味着「範圍這個變量此功能」而不是「有可能使用這個變量」。

如果您關閉var,則它將使用該函數下一個範圍內的變量。如果該範圍沒有var yourVar,那麼它將繼續向上擴展範圍鏈,直到它變爲全局範圍並懸掛在window對象(假設瀏覽器或其他默認對象爲window的JS環境)。

(這改變strict mode,你大概是沒有使用。)

+0

請注意,在ECMAScript 5 Strict Mode中,這種分配是不允許的 –

+0

因此num =「hello」是一個帶有hello字符串的變量字符串? – user1393669

+1

@ user1393669:這並不複雜。 var所做的就是改變變量的範圍。沒有其他的。除範圍之外,'num = 5'相當於'var num = 5'(同樣,在*非* -strict模式下)。也看看我鏈接到的問題,它包含更多信息。 –

1

沒有var關鍵字的變量在全球範圍內(window下瀏覽器)創建的。

如果添加var,則只需將該變量分配給當前作用域,該作用域在大多數情況下都是函數作用域。

一般來說,使用函數作用域會更好,以免污染全局作用域並防止多個同名變量之間的衝突!

相關問題