Heim >Web-Frontend >Front-End-Fragen und Antworten >Wozu dient der Javascript-Block-Level-Bereich?
Die Rolle des Bereichs auf Blockebene: Namenskonflikte lösen, die durch zu viele globale Variablen und Funktionen verursacht werden. JavaScript verschließt die Augen vor wiederholten Deklarationen, was zu falschen Ausführungsergebnissen führt. Der Bereich auf Blockebene kann dieses Problem lösen, sodass jeder Entwickler seine eigenen Variablen verwenden kann, ohne sich Sorgen machen zu müssen, dass der globale Bereich durcheinander gebracht wird.
Die Betriebsumgebung dieses Tutorials: Windows 7-System, JavaScript-Version 1.8.5, Dell G3-Computer.
Jeder Satz von Anweisungen in einem Paar geschweifter Klammern ({ und }) gehört zu einem Block. Alle darin definierten Variablen sind außerhalb des Codeblocks unsichtbar, z. B. for, while, if
und JavaScript hat keinen Gültigkeitsbereich auf Blockebene (vor der Veröffentlichung des es6-Standards hatte JavaScript keinen Gültigkeitsbereich auf Blockebene), d. h. die Definition einer Variablen im JavaScript-Codeblock kann weiterhin außerhalb des Codeblocks verwendet werden. Verwenden Sie diese Variable , zum Beispiel:
<script type="text/javascript"> var i=1; if(i==1){ var b=2; } alert(b);//输出2 function outputNumbers(count){ for(vari=0;i<count;i++){ alert(i); } alert(i); //计数 } </script>
In Sprachen wie Java und C++ wird die Variable i nur im Anweisungsblock der for-Schleife definiert. Sobald die Schleife endet, wird die Variable i zerstört. Aber in JavaScript ist die Variable i im aktiven Objekt von outputNumbers() definiert, sodass ab dem Zeitpunkt ihrer Definition überall innerhalb der Funktion auf sie zugegriffen werden kann.
Der Bereich auf Blockebene kann Namenskonflikte lösen, die durch zu viele globale Variablen und Funktionen verursacht werden, da JavaScript bei wiederholten Deklarationen ein Auge zudrückt (allerdings führt es in nachfolgenden Deklarationen eine Variableninitialisierung durch), was zu falschen Ausführungsergebnissen und Ihnen führt Es wird wahrscheinlich viel Aufwand erfordern, diesen Fehler zu erkennen.
In einer großen Anwendung, die von vielen Entwicklern geschrieben wurde, ermöglicht die Verwendung privater Bereiche jedem Entwickler, seine eigenen Variablen zu verwenden, ohne sich Sorgen machen zu müssen, dass der globale Bereich durcheinander gebracht wird.
Obwohl es in js keinen Bereich auf Blockebene gibt, können Abschlüsse/anonyme Funktionen verwendet werden, um den Bereich auf Blockebene zu imitieren.
Die Syntax einer anonymen Funktion im Bereich auf Blockebene (oft als privater Bereich bezeichnet) lautet wie folgt:
(function(){ //这里是块级作用域 })();
Der obige Code definiert eine anonyme Funktion und ruft sie sofort auf. Das Einschließen einer Funktionsdeklaration in ein Klammerpaar zeigt an, dass es sich tatsächlich um einen Funktionsausdruck handelt. Ein weiteres darauf folgendes Klammerpaar ruft diese Funktion sofort auf.
Ein Beispiel für die Verwendung anonymer Funktionen zur Implementierung des Bereichs auf Blockebene in JavaScript
function outputNumbers(count){ (function(){ for(var i=0;i<count;i++){ alert(i); } })(); alert(i); //导致错误! }
Im Beispiel werden alle in der anonymen Funktion definierten Variablen am Ende der Ausführung zerstört. Daher kann die Variable i nur innerhalb der Schleife verwendet werden und wird nach der Verwendung zerstört. Auf die Variablenanzahl kann im privaten Bereich zugegriffen werden, da es sich bei dieser anonymen Funktion um einen Abschluss handelt, der auf alle Variablen im enthaltenden Bereich zugreifen kann.
Egal wo Sie sich befinden, solange Sie vorübergehend einige Variablen benötigen, können Sie den privaten Bereich verwenden
[Verwandte Empfehlungen: Javascript-Lern-Tutorial]
Das obige ist der detaillierte Inhalt vonWozu dient der Javascript-Block-Level-Bereich?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!