


Ausführliche Erläuterung der Klassifizierung und Verwendungstechniken für den variablen Bereich von JavaScript anhand von Beispielen
Variablenumfang ist ein Thema, das jede Programmiersprache berührt, und es ist auch ein Wissenspunkt, den ein Programmierer beherrschen muss. Ein tiefes Verständnis des Variablenumfangs wird Ihnen beim Schreiben stabiler Programme helfen.
1. Klassifizierung des JavaScript-Bereichs
JavaScript hat zwei Bereiche: global (Fenster) und Funktionsebene (Funktion). Die Funktionsebene (Funktion) sollte nicht als „Blockebene (geschweifte Klammern {} Ebene)“ verstanden werden.
2. Unterscheiden und definieren Sie globale und lokale JavaScript-Variablen
1.1 Variablen, die außerhalb aller Funktionen mit oder ohne das Schlüsselwort var definiert werden, sind globale Variablen. Die globale Variable wird tatsächlich in ein Attribut des Fensterobjekts analysiert, sodass wir in der Methode „window.global variable name“ darauf zugreifen können. Es wird empfohlen, den Variablennamen zu verwenden, um direkt darauf zuzugreifen, sofern dies nicht erforderlich ist. Das folgende Beispiel zeigt die gebräuchlichste Methode zur Definition globaler Variablen:
var msg1='This is message 1'; msg2='This is message 2'; alert(window.msg1); //This is message 1 使用window关键字进行访问 alert(window.msg2); //This is message 2 alert(msg1); //This is message 1 省略window关键字的访问方式 alert(msg2); //This is message 2 function otherFunction(){} //其它一些函数或对象声明代码 var otherObject={};
1.2 Globale Variablen können auch innerhalb einer Funktion (lokale Variablenlaufzeitumgebung) definiert und abgerufen werden. Die Definitionsmethode besteht nicht darin, das Schlüsselwort var zu verwenden, und der Inhalt der globalen Variablen kann leicht in der lokalen Umgebung abgerufen werden. Verwenden Sie einfach den Namen der globalen Variablen, um darauf zu verweisen. Es ist zu beachten, dass, wenn in der Funktion eine lokale Variable mit demselben Namen wie die globale Variable definiert ist, der Funktionskörper zuerst seine eigene lokale Variable verwendet. Wenn Sie zu diesem Zeitpunkt eine globale Variable mit demselben Namen verwenden müssen, Bitte fügen Sie das Fensterpräfix hinzu. Beispiel:
var msg1='This is message 1'; var msg3='This is message 3'; function otherFunction() { msg2='This is message 2'; //不使用var关键字,其实也是定义一个全局变量 var msg3='Message 3'; alert(msg1); //This is message 1 (函数内当然可以访问到外面定义的全局变量,再深的函数嵌套一样能正确获到这个全局变量,这是JavaScript闭包的其中一种体现) alert(msg3); //Message 3 (局部变量msg3) alert(window.msg3); //This is message 3 (使用window前缀访问同名的全局变量msg3) alert(this.msg3); //This is message 3 (因为otherFunction ()定义在一个全局的环境中,此时otherFunction ()的this也是指向window,所有你看到window. msg3是等于this. msg3的) } otherFunction(); //otherFunction函数外面定义的msg1和里面定义的msg2依然是全局变量 alert(window.msg1); //This is message 1 alert(window.msg2); //This is message 2
2.1 Bei Verwendung des Schlüsselworts var sind die im Funktionskörper definierten Variablen lokale Variablen. Diese Variable kann von allen folgenden Anweisungsblöcken ({}) und Unterfunktionen verwendet werden Es. Auf diese Variable kann überall in dieser Funktion zugegriffen werden, aber außerhalb dieser Funktion kann nicht „direkt“ zugegriffen werden (Schließungen ermöglichen indirekten Zugriff oder Proxy-Zugriff, dieser Wissenspunkt würde den Rahmen dieses Artikels sprengen). Zum Beispiel:
function showMsg() { if (true) { var msg='This is message'; } alert(msg); //This is message } showMsg(); alert(typeof(msg)); //undefiend //这里在if {}大括号内定义的变量msg还能在if外showMsg()内访问到,但在showMsg()外则是无法访问的
2.2 Auf die Variablen der übergeordneten Funktion kann von der untergeordneten Funktion zugegriffen werden, auf die Variablen der untergeordneten Funktion kann jedoch von der übergeordneten Funktion nicht zugegriffen werden Der eingangs erwähnte Funktionsumfang ist konsistent. Es scheint, dass der Vater fröhlicher und der Sohn geizig ist. Zum Beispiel:
function showMsg() { var MsgA='Message A'; this.setMsg=function(msg) { var MsgB='Message B'; alert(MsgA); //Message A (子函数setMsg()可以访问父函数showMsg()的局部变量MsgA) } alert(MsgB); //MsgB未定义 (在父函数中不能访问其子函数中定义的变量MsgB) } var sm=new showMsg(); sm.setMsg('Message string');
3. Um Verwirrung oder Überschreiben von Variablen zu vermeiden, vergessen Sie nicht, das Schlüsselwort var zur Definition lokaler Variablen hinzuzufügen (falls erforderlich). , wir müssen die Variable nach der Verwendung aktiv freigeben (d. h. „Variablenname = null“). Es wird außerdem empfohlen, alle Variablen am Anfang jedes Funktionskörpers zu definieren. Beispiele sind wie folgt:
var msg='Message'; function showMsg() { var msg; //这里即使不小心使用了与全局变量一样的变量名,也不用担心覆盖同名全局变量的问题 var a; var b; var c; for (a=0;a<10;a++){} this.setMsg=function(){} }
2. Nutzen Sie anonyme Funktionen geschickt, um Namenskonflikte oder Variablenverschmutzung zu reduzieren. Die folgenden beiden Codeteile implementieren tatsächlich dieselbe Funktion. Der erste Codeteil ist so geschrieben, dass Sie die Variablennamen, die Sie in der anonymen Funktion usw. verwenden möchten, problemlos verwenden können, dies ist jedoch nicht erforderlich Machen Sie sich Sorgen, dass die von Ihnen definierten Variablen die Definitionen anderer Personen oder Ihre eigenen Variablendefinitionen an anderer Stelle überschreiben.
//定义一个匿名函数,然后把代码丢到这个匿名函数里面,能有效减少命名冲突或变量污染,这是常见JS框架的做法 (function() { var msg='This is message'; alert(msg); })(); document.write(msg); //msg未定义 (匿名函数外的其它方法已无法调用msg这个变量) //----------------------------- var msg='This is message'; alert(msg);
3. Es wird nicht empfohlen, dies anstelle von window zu verwenden, um auf globale Variablen in Funktionen zuzugreifen, die keine Instanziierung erfordern. Normalerweise sollten Funktionen, die das Schlüsselwort this verwenden, als JavaScript-Klassen behandelt werden (ich stelle dem Klassennamen gerne „cls“ voran). Wenn die folgenden Funktionen nur als normale Funktionen aufgerufen werden, sollte das Schlüsselwort this nicht erscheinen, da dies normalerweise dazu dient, eine globale Variable zu bedienen. Beispiel:
Das obige ist der detaillierte Inhalt vonAusführliche Erläuterung der Klassifizierung und Verwendungstechniken für den variablen Bereich von JavaScript anhand von Beispielen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

typedef struct wird in der C-Sprache zum Erstellen von Strukturtypaliasen verwendet, um die Verwendung von Strukturen zu vereinfachen. Es weist einem neuen Datentyp ein Alias auf eine vorhandene Struktur zu, indem es den Strukturalias angibt. Zu den Vorteilen gehören verbesserte Lesbarkeit, Wiederverwendung von Code und Typprüfung. Hinweis: Die Struktur muss vor der Verwendung eines Alias definiert werden. Der Alias muss im Programm eindeutig sein und nur innerhalb des Bereichs gültig sein, in dem er deklariert ist.

Variablenerwartungsausnahmen in Java können gelöst werden durch: Initialisierung von Variablen; Verwendung von Nullwerten; Verwendung von Überprüfungen und Zuweisungen;

Zu den Vorteilen von JavaScript-Abschlüssen gehören die Aufrechterhaltung des variablen Bereichs, die Aktivierung von modularem Code, die verzögerte Ausführung und die Ereignisbehandlung. Zu den Nachteilen zählen Speicherverluste, erhöhte Komplexität, Leistungsaufwand und Auswirkungen der Bereichskette.

Die Präprozessoranweisung #include in C++ fügt den Inhalt einer externen Quelldatei in die aktuelle Quelldatei ein und kopiert ihren Inhalt an die entsprechende Stelle in der aktuellen Quelldatei. Wird hauptsächlich zum Einschließen von Header-Dateien verwendet, die im Code benötigte Deklarationen enthalten, z. B. #include <iostream>, um Standard-Eingabe-/Ausgabefunktionen einzubinden.

Lebenszyklus von C++-Smartpointern: Erstellung: Smartpointer werden erstellt, wenn Speicher zugewiesen wird. Eigentumsübertragung: Übertragen Sie das Eigentum durch einen Umzugsvorgang. Freigabe: Speicher wird freigegeben, wenn ein Smart Pointer den Gültigkeitsbereich verlässt oder explizit freigegeben wird. Objektzerstörung: Wenn das Objekt, auf das gezeigt wird, zerstört wird, wird der intelligente Zeiger zu einem ungültigen Zeiger.

Dürfen. C++ erlaubt verschachtelte Funktionsdefinitionen und Aufrufe. Externe Funktionen können integrierte Funktionen definieren und interne Funktionen können direkt innerhalb des Bereichs aufgerufen werden. Verschachtelte Funktionen verbessern die Kapselung, Wiederverwendbarkeit und Bereichskontrolle. Interne Funktionen können jedoch nicht direkt auf lokale Variablen externer Funktionen zugreifen, und der Rückgabewerttyp muss mit der Deklaration der externen Funktion übereinstimmen. Interne Funktionen können nicht selbstrekursiv sein.

In Vue gibt es beim Deklarieren von Variablen zwischen let und var einen Unterschied im Gültigkeitsbereich: Gültigkeitsbereich: var hat einen globalen Gültigkeitsbereich und let hat einen Gültigkeitsbereich auf Blockebene. Bereich auf Blockebene: var erstellt keinen Bereich auf Blockebene, let erstellt einen Bereich auf Blockebene. Neudeklaration: var ermöglicht die Neudeklaration von Variablen im gleichen Bereich, let jedoch nicht.

Zu den Zeigertypen gehören in JavaScript: 1. Globales Objekt; 3. Konstruktoraufruf; 5. Pfeilfunktion (erbt dies); Darüber hinaus können Sie mit den Methoden bind(), call() und apply() explizit festlegen, worauf dies hinweist.
