Ja, Sie sollten immer var
verwenden.
Nicht mit var
zwei große Nachteile:
- eine Variable innerhalb einer Funktion Zugriff auf die nicht innerhalb dieser Funktion definiert ist, wird der Interpreter verursachen, bis entweder den Umfang Kette für eine Variable mit diesem Namen nachzusehen es Finden Sie einen oder es wird zum globalen Objekt (zugänglich in Browsern über
window
), wo es eine Eigenschaft erstellen wird. Diese globale Eigenschaft ist jetzt überall verfügbar und führt möglicherweise zu Verwirrung und schwer zu erkennenden Fehlern.
- Der Zugriff auf eine nicht deklarierte Variable führt zu einem Fehler im strikten ECMAScript 5-Modus.
Auch nicht var
für die globale Variable ist nicht genau die gleiche wie mit var
: wenn var
verwendet, die Eigenschaft auf dem globalen Objekt erstellt hat das interne DontDelete
Attribut, das ohne var
nicht der Fall ist:
// 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
Warum PHP markiert? – BoltClock
Ich habe eine Suche nach SO basierend auf dem Titel Ihrer Frage durchgeführt. Dies ist das erste Ergebnis, das ich erhalten habe: http://stackoverflow.com/questions/2485423/javascript-using-var-to-declare-variables-optional – user113716