Sì, è necessario utilizzare sempre var
.
Non usando var
ha due inconvenienti principali:
- Accesso a una variabile all'interno di una funzione che non è definita all'interno di tale funzione causerà l'interprete di guardare la catena possibilità di una variabile con quel nome fino a quando essa trova uno o arriva all'oggetto globale (accessibile nei browser tramite
window
) dove creerà una proprietà. Questa proprietà globale è ora disponibile ovunque, causando potenzialmente confusione e bug difficili da rilevare;
- L'accesso a una variabile non dichiarata causerà un errore nella modalità rigorosa ECMAScript 5.
Inoltre, non utilizzando var
per la variabile globale non è esattamente lo stesso che usare var
: usando var
, la proprietà crea sull'oggetto globale ha l'attributo interna DontDelete
, che non è il caso senza var
:
// Next line works in any ECMAScript environment. In browsers, you can
// just use the window object.
var globalObj = (function() { return this; })();
var x = 1;
delete globalObj.x;
alert(x); // Alerts 1, x could not be deleted
y = 2;
delete globalObj.y;
alert(y); // Error, y is undefined
fonte
2010-10-08 17:05:08
Perché taggato PHP? – BoltClock
Ho fatto una ricerca di SO in base al titolo della tua domanda. Questo è il primo risultato che ho ricevuto: http://stackoverflow.com/questions/2485423/javascript-is-using-var-to-declare-variables-optional – user113716