1661 Stimmen

Was ist der Zweck des Schlüsselworts var und wann sollte ich es verwenden (oder weglassen)?

ANMERKUNG : Diese Frage wurde aus dem Blickwinkel von ECMAScript Version 3 oder 5 gestellt. Die Antworten könnten mit der Einführung neuer Funktionen in der Version 6 von ECMAScript veraltet sein.

Was genau ist die Funktion des var Schlüsselwort in JavaScript, und was ist der Unterschied zwischen

var someNumber = 2;
var someFunction = function() { doSomething; }
var someObject = { }
var someObject.someProperty = 5;

und

someNumber = 2;
someFunction = function() { doSomething; }
someObject = { }
someObject.someProperty = 5;

?

Wann würden Sie einen der beiden verwenden und warum/wozu dient er?

33voto

Chris S Punkte 63542

Hier ist ein gutes Beispiel dafür, wie man sich verheddern kann, wenn man lokale Variablen nicht deklariert var :

<script>
one();

function one()
{
    for (i = 0;i < 10;i++)
    {
        two();
        alert(i);
    }
}

function two()
{
    i = 1;
}
</script>

( i wird bei jeder Iteration der Schleife zurückgesetzt, da sie nicht lokal in der for Schleife, sondern global), was schließlich zu einer Endlosschleife führt

17voto

Billy Punkte 14906

Ich würde sagen, es ist besser, die var in den meisten Situationen.

Lokale Variablen sind immer schneller als die Variablen im globalen Bereich.

Wenn Sie nicht var um eine Variable zu deklarieren, wird die Variable in den globalen Bereich aufgenommen.

Für weitere Informationen können Sie in Google nach "scope chain JavaScript" suchen.

14voto

Gibolt Punkte 32347

Verwenden Sie nicht var !

var war vor ES6 die Art, eine Variable zu deklarieren. Wir sind jetzt in Zukunft und sollten als solche kodiert werden.

Verwenden Sie const y let

const sollte für ~95% der Fälle verwendet werden. Es macht es, so dass die Variable Referenz kann nicht ändern, so Array, Objekt und DOM-Knoten Eigenschaften ändern können und sollte wahrscheinlich sein const .

let sollte für jede Variable verwendet werden, die neu zugewiesen werden soll. Dies gilt auch innerhalb einer for-Schleife. Wenn Sie jemals schreiben varName = über die Initialisierung hinaus, verwenden Sie let .

Beide haben, wie in den meisten anderen Sprachen üblich, ein Scoping auf Blockebene.

12voto

Pranay Warke Punkte 129

Ein weiterer Unterschied z.B.

var a = a || [] ; // works 

während

a = a || [] ; // a is undefined error.

11voto

kevinji Punkte 10229

Verwendung von var ist immer eine gute Idee, um zu verhindern, dass Variablen den globalen Bereich unübersichtlich machen und dass Variablen miteinander in Konflikt geraten, was zu unerwünschtem Überschreiben führt.

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