Javascript for-Schleife index-Variablen-werden Sie Teil des globalen Rahmen?

Vielleicht ich bin mir nicht bewusst, wie for loop-index-Variablen Gültigkeitsbereich, aber ich war sehr überrascht, als einer meiner loops nicht abgeschlossen, scheinbar, weil eine Funktion aufgerufen, die in einer Schleife enthaltenen ein i für seine for loop-index als gut.

Hier ein kleines script, das ich zusammen um dieses Verhalten zu veranschaulichen:

var loopOne = function(test) {
    for(i = 0; i < test.length; i++)
        console.log(getMask(test));
};

var getMask = function(pass) {      
    var s = "";
    for (i = 0; i < pass.length; i++) {
        s = s + "*";
    }
    return s;      
};

loopOne('hello');

Wenn ich dieses in Chrom und Blick auf die Konsole an, ich sollte sehen ***** fünf mal. Jedoch sehe ich nur einmal. Bei einer weiteren Untersuchung, wenn ich Typ i im Chrome-javascript-Konsole, wird es die Ausgabe 6 ( = 'hello'.length + 1). Das macht mich denken, dass i geworden, ein Teil des globalen Gültigkeitsbereich und ist nicht auf den Umfang begrenzt, der for Schleife, für die es gebraucht wurde.

Ist das richtig? Falls ja, was ist die bessere Methode für die Bestimmung der index-Variablen von einem for - Schleife in javascript?

Schreibe einen Kommentar