Il existe deux types de variables en JavaScript: les variables locales et les variables globales. Bien sûr, notre article est de vous aider à vraiment distinguer ces deux variables.
Premièrement, les variables locales se réfèrent aux fonctions qui ne peuvent être appelées que dans une fonction déclarée par cette variable. Une variable qui peut être appelée dans l'ensemble du code en tant que variable globale. Bien sûr, il n'est certainement pas clair de comprendre littéralement. Je vais le présenter en détail ci-dessous:
Comme nous le savons tous, les variables doivent être déclarées avec le mot clé VAR. Cependant, les variables peuvent également être utilisées implicitement dans JavaScript, ce qui signifie qu'elles sont utilisées directement sans déclaration. De plus, soyez prudent que JavaScript utilise toujours des variables déclarées implicitement comme variables globales.
Par exemple:
La copie de code est la suivante:
fonction myname () {
i = 'yuanjianhang';
}
myName ();
fonction ditName () {
alerte (i);
}
SayName ();
Le résultat de la sortie est: yuanjianhang
Cela montre que la variable I est une variable globale. Si le code ci-dessus est modifié par ce qui suit:
La copie de code est la suivante:
fonction myname () {
var i = 'yuanjianhang';
}
myName ();
fonction ditName () {
alerte (i);
}
SayName ();
À ce stade, le navigateur n'aura aucun résultat de sortie, car je suis défini dans la fonction MyName, donc c'est juste une variable locale de MyName et ne peut pas être appelé externe.
Regardez maintenant le code suivant:
La copie de code est la suivante:
fonction myname () {
i = 'yuanjianhang';
}
myName ();
fonction ditName () {
alerte (i);
}
SayName ();
Maintenant, faisons quelques modifications et supprimons MyName (); Et le code est le suivant:
La copie de code est la suivante:
fonction myname () {
i = 'yuanjianhang';
}
fonction ditName () {
alerte (i);
}
SayName ();
Pour le moment, le navigateur ne réagira pas beaucoup. Étant donné que je suis une variable globale, la fonction myname () n'est pas appelée, donc elle est équivalente à cela, bien que je sois déclaré, il n'attribue aucune valeur à I, donc il n'y a pas de sortie.
De même, si l'exemple ci-dessus est modifié en:
La copie de code est la suivante:
fonction myname () {
i = 'yuanjianhang';
}
fonction ditName () {
alerte (i);
}
SayName ();
myName ();
Dans ce cas, aucun résultat ne sera sorti. Lorsque le code JavaScript est exécuté, la valeur de la variable je sera vérifiée lorsque la fonction SayName () sera appelée. Pour le moment, la fonction MyName n'a pas encore été exécutée, ce qui signifie que je n'ai pas encore été affecté, donc aucun résultat ne sera sorti.
Pour faciliter la meilleure compréhension de chacun, voici un autre exemple:
La copie de code est la suivante:
var i = 'yuanjianhang';
fonction myLovename () {
i = 'guanxi';
}
myLovename ();
fonction myname () {
alerte (i);
}
myName ();
Quel est le résultat cette fois?
La réponse est guanxi
Tout d'abord, la valeur d'origine de I est Yuanjianhang, mais après avoir appelé la fonction MyLovename (), la valeur de i est changée en guanxi, donc le résultat de sortie final est guanxi.
Si vous modifiez le code pour:
La copie de code est la suivante:
var i = 'yuanjianhang';
fonction myLovename () {
var i = 'guanxi';
}
myLovename ();
fonction myname () {
alerte (i);
}
myName ();
Le résultat pour le moment est Yuanjianhang, car les deux I dans le code sont différents, l'un est global et l'autre est local. Il peut également être compris de cette manière. Bien que les noms des deux I soient les mêmes, l'essence de ces deux I est différente, comme s'il y avait deux personnes du même nom. Bien que les noms soient les mêmes, ce ne sont pas la même personne.
Si vous transformez le code en ceci:
La copie de code est la suivante:
var i = 'yuanjianhang';
fonction myLovename () {
i = 'guanxi';
}
fonction myname () {
alerte (i);
}
myName ();
myLovename ();
Je crois que tout le monde peut comprendre le résultat par eux-mêmes, et le résultat est Yuanjianhang.
Étant donné que les variables globales peuvent être appelées à l'intérieur de la fonction, qu'en est-il de la situation suivante:
La copie de code est la suivante:
var i = 'yuanjianhang';
fonction myLovename () {
i = 'guanxi';
alerte (i);
}
myLovename ();
Quelle valeur est la variable pour le moment?
Analysons:
Tout d'abord, la variable globale I est affectée comme: Yuanjianhang.
La prochaine fonction MyLovename () est appelée, et la variable globale i est réaffectée à une nouvelle valeur: guanxi
Donc, le résultat est définitivement: guanxi.
Et si nous prenons des alertes à l'avance, comme ceci:
La copie de code est la suivante:
var i = 'yuanjianhang';
fonction myLovename () {
alerte (i);
i = 'guanxi';
}
myLovename ();
Quel est le résultat pour le moment?
Les résultats vérifiés sont: indéfinis
Et si le code est comme ceci:
La copie de code est la suivante:
var i = 'yuanjianhang';
fonction myLovename () {
alerte (i);
}
myLovename ();
Le résultat pour le 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 il n'y a pas de définition de i avant de sortir i. Ainsi, nous pouvons voir que lors de l'utilisation du code, la déclaration de variables doit être placée devant le code pour éviter des problèmes similaires!
De la même manière:
La copie de code est la suivante:
var i = 'yuanjianhang';
fonction myLovename () {
alerte (i);
var i = 'guanxi';
}
myLovename ();
Dans ce cas, il sortira également: indéfini
D'accord, je n'ai que tellement de présentations sur les variables, et je crois que n'importe qui peut les comprendre. Peu importe comment le code est copié, son cœur ne changera pas.
Ce qui précède concerne cet article. Avez-vous eu une compréhension plus approfondie de la différence entre les variables locales et les variables globales en JavaScript? Je vous souhaite une bonne année et une bonne étude.