2012-02-16 81 views
8

我對JavaScript和局部變量有一個相當普遍的問題。我的問題是以下之間有什麼區別,如果有的話:在JavaScript中使用var重新定義局部變量

function bla 
{ 
    var a = 2; // local variable 
    a = 3;  // the local variable a gets a new value 

    // Would do the following line anything different 
    // (than simply asigning this value?) 
    var a = 4; 
} 

我想我不會得到兩個名爲a的局部變量。在其他語言中,這甚至是一個錯誤。那麼這有什麼用?

回答

13

任何在功能中使用var都會被吊起。後續對同一範圍內的相同變量的使用不起作用。

它與單獨的a = 4;完全相同。

+3

重新定義變量是否有任何性能成本? 我喜歡在我的if,for,while等聲明我的局部變量,以保持代碼整潔和可讀。這完全是由個人品味(我知道變量的範圍在功能範圍內),我想確保它不會對性能產生負面影響。 – 2013-05-17 08:58:46

+5

下面是我的問題的答案:http://jsfiddle.net/U5Zdv/ =>它在IE10的性能方面絕對沒有差別 – 2013-05-17 10:30:20