2012-02-16 3 views
8

Mam raczej ogólne pytanie dotyczące JavaScript i zmiennych lokalnych. Moje pytanie brzmi: jaka jest różnica między następującymi i jeśli są jakieś:Przedefiniowanie zmiennej lokalnej za pomocą var w JavaScript

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; 
} 

Przypuszczam, że nie otrzymam dwóch zmiennych lokalnych o nazwie. W innych językach jest to nawet błąd. Czy jest w tym jakiś użytek?

Odpowiedz

13

Dowolne użycie var w funkcji jest podnoszone. Kolejne zastosowania na tej samej zmiennej w tym samym zakresie nie mają wpływu.

Ma dokładnie to samo znaczenie co a = 4; sam.

+3

Czy są jakieś koszty wykonania, aby zmienić definicję zmiennej? Podobają mi się deklarowanie zmiennych lokalnych w mojej komórce, jeśli, dla, podczas itd., Aby kod był uporządkowany i czytelny. Wynika to wyłącznie z osobistego gustu (wiem, że zakres zmiennej znajduje się w funkcji) i chciałbym się upewnić, że nie ma to negatywnego wpływu na występy. –

+5

Oto odpowiedź na moje pytanie: http://jsfiddle.net/U5Zdv/ => nie ma absolutnie żadnej różnicy pod względem wydajności na IE10 –