Prima di porre la mia domanda, lasciatemi dare una dichiarazione di non responsabilità. So cosa fa lo var
, conosco l'ambito dei blocchi, e so di sollevamento variabile. Non sto cercando risposte su questi argomenti.Esistono lati negativi per l'utilizzo di var più di una volta sulla stessa variabile in JavaScript
Mi chiedo semplicemente se esiste un costo funzionale, di memoria o di prestazioni per l'utilizzo di una dichiarazione di variabile sulla stessa variabile più di una volta all'interno di una funzione.
Ecco un esempio:
function foo() {
var i = 0;
while (i++ < 10) {
var j = i * i;
}
}
Il precedente, potrebbero semplicemente potuto facilmente stato scritto con l'j
variabled dichiarato in alto:
function foo() {
var i = 0, j;
while (i++ < 10) {
j = i * i;
}
}
mi chiedo se non v'è alcuna differenza reale tra questi due metodi. In altre parole, la parola chiave var
non fa altro che stabilire un ambito?
motivi che ho sentito a preferire il secondo metodo:
- Il primo metodo dà l'aspetto del campo di applicazione di blocco quando è in realtà la funzione scope.
- Le dichiarazioni variabili vengono issate su la parte superiore dell'ambito, quindi è qui che devono essere definite.
Ritengo che questi motivi siano buoni ma soprattutto stilistici. Ci sono altri motivi che hanno più a che fare con la funzionalità, l'allocazione della memoria, le prestazioni, ecc.?
Dubito che i 4 byte per "var" rispetto ai due byte per "," non siano significativi. –
@LeeMeador Non sarei d'accordo.È solo 4 byte se è UTF-8 o ASCII e combina diversi file JavaScript di grandi dimensioni in un progetto di grandi dimensioni e stai parlando di una buona quantità di risparmio. – Lloyd
@Lloyd Irrilevante. Compressione HTTP e minimizzatori intelligenti (ad esempio Clojure Compiler). –