376 Stimmen

Ist die Verwendung von 'var' zur Deklaration von Variablen optional?

Ist "var" optional?

myObj = 1;

wie bei ?

var myObj = 1;

Bei meinem Test habe ich festgestellt, dass beide funktionieren, ich nehme an var ist fakultativ. Ist das richtig?

16voto

kzh Punkte 18714

var ist fakultativ. var setzt eine Variable in den lokalen Bereich. Wenn eine Variable ohne var ist sie von globaler Bedeutung. und nicht löschbar .

bearbeiten

Ich dachte, dass der nicht löschbare Teil zu einem bestimmten Zeitpunkt in einer bestimmten Umgebung zutreffend war. Ich muss es geträumt haben.

9voto

SLaks Punkte 832502

Sie sind nicht dasselbe.

Nicht deklarierte Variable (ohne var ) werden als Eigenschaften des globalen Objekts behandelt. (Normalerweise werden die window Objekt, es sei denn, Sie befinden sich in einer with Block)

Variablen, die mit var sind normale lokale Variablen, die außerhalb der Funktion, in der sie deklariert sind, nicht sichtbar sind. (Beachten Sie, dass Javascript keinen Blockbereich hat)

Aktualisierung: ECMAScript 2015

let wurde in ECMAScript 2015 eingeführt, um einen Blockumfang haben .

9voto

Milk Man Punkte 1248

Schau dir diese Fiddle an: http://jsfiddle.net/GWr6Z/2/

function doMe(){

a = "123"; // will be global
var b = "321"; // local to doMe
alert("a:"+a+"  --  b:"+b);

b = "something else"; // still local (not global)
alert("a:"+a+"  --  b:"+b);

};

doMe()
alert("a:"+a+"  --  b:"+b); // `b` will not be defined, check console.log

6voto

Cyril Gupta Punkte 13086

Das Schlüsselwort var in Javascript hat einen bestimmten Zweck.

Wenn Sie eine Variable ohne das Schlüsselwort var deklarieren, etwa so:

myVar = 100;

Sie wird zu einer globalen Variablen, auf die von jedem Teil Ihres Skripts aus zugegriffen werden kann. Wenn Sie dies nicht absichtlich getan haben oder sich dessen nicht bewusst sind, kann es Ihnen Schmerzen bereiten, wenn Sie den Variablennamen an einer anderen Stelle in Ihrem Javascript wiederverwenden.

Wenn Sie die Variable mit dem Schlüsselwort var deklarieren, etwa so:

var myVar = 100;

Sie ist lokal im Bereich ({] - geschweifte Klammern, Funktion, Datei, je nachdem, wo Sie sie platziert haben).

Dies ist eine sicherere Methode zur Behandlung von Variablen. Wenn Sie es also nicht absichtlich tun, versuchen Sie, Variablen mit dem Schlüsselwort var und nicht ohne zu deklarieren.

4voto

Leniel Maccaferri Punkte 96851

Betrachten Sie diese Frage, die heute bei StackOverflow gestellt wurde:

Einfache Javascript-Frage

Ein guter Test und ein praktisches Beispiel ist das, was in dem obigen Szenario passiert...
Der Entwickler hat den Namen der JavaScript-Funktion in einer seiner Variablen verwendet.

Was ist das Problem mit dem Code?
Der Code funktioniert nur, wenn der Benutzer das erste Mal auf die Schaltfläche klickt.

Was ist die Lösung?
Fügen Sie die var Schlüsselwort vor dem Variablennamen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X