Heim > Web-Frontend > js-Tutorial > Hauptteil

Detaillierte Erläuterung des Unterschieds zwischen lokalen Variablen und globalen Variablen in Javascript_Javascript-Kenntnissen

WBOY
Freigeben: 2016-05-16 16:12:44
Original
1868 Leute haben es durchsucht

Javascript hat zwei Arten von Variablen: lokale Variablen und globale Variablen. Unser Artikel soll Ihnen natürlich dabei helfen, wirklich zwischen diesen beiden Variablen zu unterscheiden.

Zuallererst können lokale Variablen nur innerhalb der Funktion aufgerufen werden, in der diese Variable deklariert ist. Globale Variablen sind Variablen, die im gesamten Code aufgerufen werden können. Natürlich ist es definitiv nicht klar, es wörtlich zu verstehen. Lassen Sie mich es unten im Detail vorstellen:
Wie wir alle wissen, müssen Variablen mit dem Schlüsselwort var deklariert werden. Variablen können in JavaScript aber auch implizit verwendet werden, das heißt, sie können ohne Deklaration direkt verwendet werden. Beachten Sie außerdem, dass JavaScript immer implizit deklarierte Variablen als globale Variablen verwendet.
Zum Beispiel:

Code kopieren Der Code lautet wie folgt:

Funktion meinName() {
i = 'yuanjianhang';
}
meinName();
Funktion sayName() {
alarm(i);
}
sayName();

Das Ausgabeergebnis ist: yuanjianhang

Dies zeigt, dass die Variable i eine globale Variable ist, wenn der obige Code wie folgt geändert wird:

Code kopieren Der Code lautet wie folgt:

Funktion meinName() {
var i='yuanjianhang';
}
meinName();
Funktion sayName() {
alarm(i);
}
sayName();

Zu diesem Zeitpunkt hat der Browser keine Ausgabeergebnisse, da i in der Funktion myName definiert ist und daher nur eine lokale Variable von myName ist und nicht extern aufgerufen werden kann.

Schauen Sie sich nun den folgenden Code noch einmal an:

Code kopieren Der Code lautet wie folgt:

Funktion meinName() {
i = 'yuanjianhang';
}
meinName();
Funktion sayName() {
alarm(i);
}
sayName();

Jetzt nehmen wir einige Änderungen vor und entfernen myName();. Der Code lautet wie folgt:

Code kopieren Der Code lautet wie folgt:

Funktion meinName() {
i = 'yuanjianhang';
}
Funktion sayName() {
alarm(i);
}
sayName();

Zu diesem Zeitpunkt reagiert der Browser nicht. Denn obwohl i eine globale Variable ist, wurde die Funktion myName() nicht aufgerufen. Sie entspricht also der Deklaration von i, aber der Zuweisung eines Werts an i, sodass keine Ausgabe erfolgt.
Ebenso, wenn das obige Beispiel geändert wird in:

Code kopieren Der Code lautet wie folgt:

Funktion meinName() {

i = 'yuanjianhang';
}
Funktion sayName() {
alarm(i);
}
sayName();
meinName();

In diesem Fall werden keine Ergebnisse ausgegeben. Der JavaScript-Code wird von oben nach unten ausgeführt. Wenn die Funktion sayName() aufgerufen wird, wird der Wert der Variablen i überprüft noch nicht ausgeführt, d. h. i wurde noch kein Wert zugewiesen, daher werden keine Ergebnisse ausgegeben.

Um das Verständnis für alle zu erleichtern, hier ein weiteres Beispiel:

Code kopieren Der Code lautet wie folgt:

var i = 'yuanjianhang';
Funktion myloveName() {
i = 'guanxi';
}
myloveName();
Funktion meinName() {
alarm(i);
}
meinName();

Was ist dieses Mal das Ergebnis?
Die Antwort ist Guanxi
Erstens ist der ursprüngliche Wert von i yuanjianhang, aber nach dem Aufruf der Funktion myloveName () wird der Wert von i in guanxi geändert, sodass das endgültige Ausgabeergebnis guanxi ist.

Wenn Sie den Code ändern in:

Code kopieren Der Code lautet wie folgt:

var i = 'yuanjianhang';
Funktion myloveName() {
var i = 'guanxi';
}
myloveName();
Funktion meinName() {
alarm(i);
}
meinName();

Le résultat à ce moment est yuanjianhang, car les deux i dans le code sont différents, l'un est global et l'autre est local. Cela peut aussi être compris de cette façon, bien que les noms des deux i soient les mêmes. L'essence est différente, tout comme s'il y a deux personnes portant le même nom. Bien que les noms soient les mêmes, ce ne sont pas la même personne.

Si vous modifiez le code comme suit :

Copier le code Le code est le suivant :

var je = 'yuanjianhang';
function monnomamour() {
je = 'guanxi';
>
fonction monNom() {
alerte(i);
>
monNom();
monnomamour();

Je pense que vous pouvez calculer le résultat par vous-même, et le résultat est yuanjianhang.

Puisque les variables globales peuvent être appelées à l'intérieur de la fonction, qu'en est-il de la situation suivante :

Copier le code Le code est le suivant :

var je = 'yuanjianhang';
function monnomamour() {
je = 'guanxi';
alerte(i);
>
monnomamour();

Quelle est la valeur de la variable à ce moment ?

Analysons-le :

Tout d'abord, la variable globale i reçoit la valeur : yuanjianhang.

Ensuite, la fonction myloveName() est appelée et la variable globale i reçoit une nouvelle valeur : guanxi

Le résultat doit donc être : guanxi.

Et si on avance l'alerte, comme ceci :

Copier le code Le code est le suivant :

var je = 'yuanjianhang';
function monnomamour() {
alerte(i);
je = 'guanxi';
>
monnomamour();

Quel est le résultat à ce moment ?
Le résultat vérifié est : non défini
Et si le code ressemble à ceci :

Copier le code Le code est le suivant :

var je = 'yuanjianhang';
function monnomamour() {
alerte(i);
>
monnomamour();

Le résultat de i à ce moment est : yuanjianhang

Pourquoi la situation non définie ci-dessus se produit-elle ? Parce que l'ordre d'exécution du code est de haut en bas et que i n'est pas défini avant sa sortie. On voit donc d'ici que lors de l'utilisation de code, la déclaration des variables doit être placée au début du code pour éviter des problèmes similaires !

De même :

Copier le code Le code est le suivant :

var je = 'yuanjianhang';
function monnomamour() {
alerte(i);
var je = 'guanxi';

>
monnomamour();

Dans ce cas, il affichera également : undefined

D'accord, je n'ai que peu d'introductions sur les variables. Je pense que tout le monde peut les comprendre. Quelle que soit la manière dont le code est copié, son noyau ne changera pas.

Ce qui précède représente l'intégralité du contenu de cet article. Avez-vous une compréhension plus approfondie de la différence entre les variables locales et les variables globales en JavaScript ? Je vous souhaite à tous une bonne année et un bon apprentissage ?

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage