我經常進來的情況下我的行爲,根據我的心情:在全球範圍內預定義變量的優點是什麼?
情況A):
function a() {
var msg = 'a()';
..operate on msg
}
function b() {
var msg = 'b()';
..operate on msg
}
情況B):
var msg;
function a() {
msg = 'a()';
..operate on msg
}
function b() {
msg = 'b()';
..operate on msg
}
注意與「對msg進行操作」我不是指一個函數,而是一堆的操作。
我在這很有趣,因爲JSHint指出變量已經儘管它們具有相同的名稱,但出現在例如不同的功能預定義。
更新: 當我問這個問題以清除已更改功能的情況時,我可能不正確。
UPDATE 2 我理解範圍。我的意思是,儘管範圍有其他優勢嗎?
它不是不同的關閉。 – Diode
這就是所謂的變量提升: http://www.adequatelygood.com/JavaScript-Scoping-and-Hoisting.html –
@tracevipin我用「功能」取代了它。如果我有兩個函數定義了相同的變量名,linters就會生氣 –