Heim >Web-Frontend >js-Tutorial >Bei der Verwendung des JS-Variablenbereichs sind Fehler aufgetreten

Bei der Verwendung des JS-Variablenbereichs sind Fehler aufgetreten

php中世界最好的语言
php中世界最好的语言Original
2018-05-24 15:57:131869Durchsuche
for (var i = 0; child && i < child.length; i++) {
            var obj = child[i];
            var kind = child[i].kind;
            var deiveId = child[i].id;
            if (kind == "4") {//分支1
                 // do sometjing
            }else{//分支2
                for(i in arr){
                   //do something
                }
            }

Der obige Code erzeugt ein scheinbar seltsames Problem, das heißt, wenn überhaupt! Im Fall von Zweig 2 von =4 kehrt manchmal die äußere for-Schleife zurück, das heißt: Die äußerste Schleife hat offensichtlich das letzte Kind erreicht. Nach dem Ausführen von Zweig 2 wird die äußere for-Schleife zurückgedreht erneut ausführen.

Ursachenanalyse:
Ich denke, Profis, die nicht so schlecht sind wie ich, werden feststellen, dass das Problem in der Variableni liegt, wo ich nicht werden werde Blockebenenvariable, aber die -Funktionsebene Die Änderung in i in Zweig 2 führt dazu, dass sich die äußere Schicht i ändert, wodurch die Schleife zurückgedreht wird.
js hatte vor ES6 keinen Bereich auf Blockebene und war nur in einen globalen Bereich und einen Bereich auf Funktionsebene unterteilt. Hier ist i der Bereich auf Funktionsebene, und wenn wir ihn verwenden, um eine Schleife Index , es ist tatsächlich so, dass es als Bereich auf Blockebene verwendet werden soll.

Lösung

Wenn Sie den Bereichseffekt auf Blockebene erzielen möchten, können Sie das let-Schlüsselwort der ES6-Syntax verwenden:

for(let i=0;i<arr.length;i++){
}
Ich glaube Sie haben den Fall in diesem Artikel gelesen. Sie beherrschen die Methode. Weitere spannende Inhalte finden Sie auf der chinesischen PHP-Website

anderen verwandten Artikeln!

Empfohlene Lektüre:

Zusammenfassung häufig verwendeter CSS-Stile

Detaillierte Erläuterung des Unterschieds zwischen der Verwendung von Component und PureComponent


Das obige ist der detaillierte Inhalt vonBei der Verwendung des JS-Variablenbereichs sind Fehler aufgetreten. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn