Maison  >  Article  >  interface Web  >  Explication détaillée de la différence entre les variables locales et les variables globales dans les compétences javascript_javascript

Explication détaillée de la différence entre les variables locales et les variables globales dans les compétences javascript_javascript

WBOY
WBOYoriginal
2016-05-16 16:12:441869parcourir

Javascript a deux types de variables : les variables locales et les variables globales. Bien entendu, notre article a pour but de vous aider à véritablement distinguer ces deux variables.

Tout d'abord, les variables locales ne peuvent être appelées que dans la fonction où cette variable est déclarée. Les variables globales sont des variables qui peuvent être appelées dans tout le code. Bien sûr, il n'est certainement pas clair de le comprendre littéralement. Permettez-moi de 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. Mais les variables peuvent également être utilisées implicitement en JavaScript, c'est-à-dire qu'elles peuvent être utilisées directement sans déclaration. De plus, veillez à noter que JavaScript utilise toujours des variables implicitement déclarées comme variables globales.
Par exemple :

Copier le code Le code est le suivant :

fonction monNom() {
je = 'yuanjianhang';
>
monNom();
fonction sayName() {
alerte(i);
>
sayName();

Le résultat de sortie est : yuanjianhang

Cela montre que la variable i est une variable globale. Si le code ci-dessus est modifié comme suit :

Copier le code Le code est le suivant :

fonction monNom() {
var i='yuanjianhang';
>
monNom();
fonction sayName() {
alerte(i);
>
sayName();

Pour le moment, le navigateur n'aura aucun résultat de sortie, car i est défini dans la fonction myName, il ne s'agit donc que d'une variable locale de myName et ne peut pas être appelée en externe.

Revenons maintenant au code suivant :

Copier le code Le code est le suivant :

fonction monNom() {
je = 'yuanjianhang';
>
monNom();
fonction sayName() {
alerte(i);
>
sayName();

Maintenant, apportons quelques modifications et supprimons myName();. Le code est le suivant :

Copier le code Le code est le suivant :

fonction monNom() {
je = 'yuanjianhang';
>
fonction sayName() {
alerte(i);
>
sayName();

Pour le moment, le navigateur ne répondra pas. Parce que bien que i soit une variable globale, la fonction myName() n'a pas été appelée, cela équivaut donc à déclarer i mais sans lui attribuer de valeur, donc il n'y a pas de sortie.
De la même manière, si l'exemple ci-dessus est remplacé par :

Copier le code Le code est le suivant :

fonction monNom() {

je = 'yuanjianhang';
>
fonction sayName() {
alerte(i);
>
sayName();
monNom();

Dans ce cas, aucun résultat ne sera affiché. Le code JavaScript est exécuté de haut en bas. Lorsque la fonction sayName() est appelée, la valeur de la variable i sera vérifiée à ce moment-là. pas encore été exécuté, c'est-à-dire qu'aucune valeur ne m'a encore été attribuée, donc aucun résultat ne sera affiché.

Afin de faciliter une meilleure compréhension de chacun, voici un autre exemple :

Copier le code Le code est le suivant :

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

Quel est le résultat cette fois-ci ?
La réponse est guanxi
Premièrement, la valeur originale de i est yuanjianhang, mais après avoir appelé la fonction myloveName(), la valeur de i est modifiée en guanxi, donc le résultat final est guanxi.

Si vous changez le code en :

Copier le code Le code est le suivant :

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

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 ?

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn