2016-04-25 5 views
4

Ich habe eine Frage.
Zum Beispiel verwende ich for Schleife wie folgt aus:Für Schleife und hissen

for (var i = 0; i < some_length; i++) { 
    /* some code */ 
} 

Danach Variable i gehisst wird.
Bedeutet es, dass ich am Anfang des Bereichs immer i Variable deklarieren sollte?

var i; 

for (i = 0; i < some_length; i++) { 
    /* some code */ 
} 

UPD:
Ich weiß, dass beide Schleifen die gleiche Art und Weise arbeiten.
Ich meine, welche ist richtiger?

+3

Beide bedeutet das gleiche, nur das erste ist lesbarer. – gurvinder372

+0

Und das Ganze macht mehr Sinn, wenn es in 'Funktionsblock' eingepackt ist. – Rayon

+1

" Bedeutet es, dass ich immer am Anfang des Scope eine Variable deklarieren soll? " - Das ist eine Frage der Meinung. Es gibt keinen Unterschied, was den Compiler betrifft. – Quentin

Antwort

7

Modernes JavaScript unterstützt block scoping über let.

for (let i = 0; i < some_length; i++) { 
    /* i is defined here */ 
} 
/* i is not defined here */

Zurück zur ursprünglichen Frage: Welches Beispiel ist richtiger?

Ich würde argumentieren, dass die zweite weniger fehleranfällig ist.

+0

Link ist passwortgeschützt. –

+0

Behoben, danke! –

2

In Ihrem Beispiel - die erste ist klassische Typ-Deklaration Ihrer Iterator-Variable. In anderen Fällen, wenn Sie mit vielen Funktionen/Objekten/Variablen arbeiten, empfehle ich Ihnen, alle Variablen am Anfang Ihres Bereichs/Objekts/Funktion zu deklarieren.

Wenn Code in Zukunft so geschrieben wird, wird es viel einfacher zu sehen, was hier vor sich geht. Sie schauen nur auf die ersten 10-15 Zeilen Code und Sie würden nicht nach jeder Variablen innerhalb suchen - alles wird am Anfang Ihres Codes erklärt.

+1

aber richtiger in FOR LOOP ist dein erstes Beispiel. Seine lässige Erklärung in vielen Sprachen. –