2017-07-16 9 views
1

Meine Frage bezieht sich auf allgemeine gute Praktiken der Benennung mehrerer Iterationszähler in verschiedenen Funktionen. Nehmen wir an, ich habe 3 verschiedene Funktionen und jede von ihnen hat for Schleife. In der ersten verwendet ich for(var i=0; i<5; i++) alle anderen Funktionen halten auch ähnliche for Schleife. Sollte ich lieber i gegen 0 nach jeder Schleife am Ende jeder Funktion ändern oder 3 verschiedene Variablen als Iterationszähler in jeder for Schleife innerhalb jeder Funktion deklarieren?Gute Praxis für die Benennung mehrerer Iterationszähler

+0

was spricht dagegen, sie zu benennen i ?? –

+1

klingt wie Sie verwenden eine globale Variable, wenn es sein sollte – MildlySerious

+0

@MildlySerious Ok, danke! Stimmt. Ich erkläre global i = 0; so wird es nach jeder Schleife permanent zu i = x; nach jeder Schleife. Alles ist jetzt klar für mich. Danke. –

Antwort

3

Ich habe 3 verschiedene Funktionen

Wenn es drei verschiedene Funktionen, und erklären Sie Schleife for (vari = 0), wird es eine andere i für jeden von diesen sein. In diesem Fall deklariert var die Variable innerhalb des Funktionsumfangs (see MDN). Also, i ist ein völlig in Ordnung Name (meist, ich sehe i, j und k für verschachtelte Schleifen (*)) und es gibt keine Notwendigkeit für Unterschiede.

Allerdings: Ohne die var, wenn Sie nicht im strikten Modus sind, ich wird globalen Geltungsbereich haben.

Als Randbemerkung: Ab heute (ES6), würde ich es vorziehen, for (leti = 0...) verwenden, wenn i nicht außerhalb der Schleife verwendet wird, da in diesem Fall i an die Schleife scoped ist (MDN).


(*) obwohl, wenn man drei verschachtelte Schleifen benötigt, etwas falsch sein könnte.

+1

Danke :) Du gibst mir wirklich wertvolle Informationen! :) –

2

Wenn die Interaktion in den einzelnen Funktionen nicht irgendwie zusammenhängt, sollten sie unabhängig vom Namen einzeln deklariert werden.

Auch wenn Sie kein globales Feld für i verwenden, blockiert jeder Code i Variable nur im lokalen Bereich sowieso, also keine Notwendigkeit, etwas zurückzusetzen.

Grundsätzlich würde ich keine Variable für die Iteration spezifisch im globalen Bereich teilen, würde ich diese Schleifenfunktionalität in seine eigene Bereichsfunktion verschieben, wenn es angemessen ist.

+0

Ja, das war mein Problem. Ich werde mich jetzt daran erinnern! Vielen Dank :) –

+0

Keine Sorge. Habe gerade gemerkt, dass dir in den Kommentaren auch geholfen wurde, zögere nicht dies als Antwort zu akzeptieren, Happy Coding! – dkanejs

+1

Danke! Ich akzeptiere das als Antwort! :) –

Verwandte Themen