2012-02-16 7 views
8

Ho una domanda piuttosto generale riguardante JavaScript e variabili locali. La mia domanda è che cosa è la differenza tra quanto segue e se non v'è alcuna:Ridefinizione di una variabile locale con var in 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; 
} 

suppongo che non sarà possibile ottenere due variabili locali chiamati a. In altre lingue questo è anche un errore. Quindi c'è qualche utilità per questo?

risposta

13

Qualsiasi utilizzo di var all'interno di una funzione viene attivato. Gli usi successivi sulla stessa variabile nello stesso ambito non hanno alcun effetto.

Ha esattamente lo stesso significato di a = 4;.

+3

Esiste un costo di prestazioni per ridefinire una variabile? Mi piace dichiarare le mie variabili locali all'interno del mio if, for, while, ecc per mantenere il codice ordinato e leggibile. Questo è esclusivamente per gusto personale (so che lo scopo della variabile è all'interno della funzione), e mi piacerebbe assicurarmi che non abbia un impatto negativo sulle prestazioni. –

+5

Ecco la risposta alla mia domanda: http://jsfiddle.net/U5Zdv/ => non fa assolutamente nessuna differenza in termini di prestazioni su IE10 –