7
votes

Utilisation d'une variable globale en JavaScript

Comment puis-je faire cela?

Mon code est quelque chose comme ceci: xxx

La première alerte renvoie toujours "l'ancien nombre était:" et non 10. 'T IT Renvoie 10 sur les deux alertes sur la deuxième fonction de fonction?


3 commentaires

Putain ya'll! Merci pour toutes les réponses si rapides.


Pourquoi écrivez-vous d'alerte («ancien numéro était: '+ [numéro] +' '); et non alerte («ancien numéro était: '+ numéro); Parce qu'il alerte un tableau avec un élément à l'intérieur, pas l'élément (numéro)


Hmmm Dunno mais ça marche. Je ne pense pas que cela chercherait un tableau parce que je conjointais un espace vide sur le côté droit + ''; Ou peut-être pas je ne sais pas.


7 Réponses :


11
votes

Supprimer le var devant numéro dans votre fonction. Vous créez une variable locale par xxx

Vous avez juste besoin xxx


0 commentaires

15
votes

En utilisant var lors de la définition numéro = '10', vous déclarez numéro en tant que variable locale à chaque fois. Essayez ceci: xxx


2 commentaires

Comment accédez-vous alors ce site variaable sur la fonction PlaySong et obtenez la valeur 10?


@johnsnails La variable est déclarée en dehors de la fonction, alors lors de l'attribution numéro = 10, la variable globale est renvoyée, mais si nous utilisons Var Number = '10' dans la fonction latérale, nous aurons une portée locale, nous n'aurons pas la valeur 10 à l'extérieur. la fonction.



3
votes

Le problème est que vous déclarez une nouvelle variable nommée numéro à l'intérieur de la fonction. Cette nouvelle variable masque la variable global numéro , de sorte que la ligne numéro = 10 n'attribue uniquement à cette nouvelle variable locale.

Vous devez supprimer le mot-clé var de var numéro = 10 .


0 commentaires

2
votes

Comme dans C, vous devez définir votre variable en dehors de la fonction / méthode pour la rendre globale.

var number = 0;

function playSong(artist,title,song,id)
{
    alert('old number was: '+[number]+'');
    number = '10';
    alert(''+[number]+'');
}


2 commentaires

Il est rassurant de voir la même réponse affichée dans la même minute.


En réalité, toute définition sans «var» sera une variable globale, quel que soit l'endroit où il est défini. JavaScript peut être effrayant.



1
votes

Vous pouvez également y accéder à n'importe quelle fonction, comme window.number , après avoir supprimé var à l'intérieur de la fonction.


1 commentaires

C'est probablement vrai, mais peut-être dire quelque chose sur le contexte (par exemple, fonctionnerait-il dans Node.js?).



2
votes

Permettez-moi d'expliquer en détail. Pour déclarer des variables globales et des variables locales dans JavaScript xxx

lorsque votre programme est comme celui-ci xxx

selon le compilateur JavaScript, toutes les déclarations / Les initialisations des variables vont se déplacer vers le haut. Ce concept s'appelle hisser .

Selon le compilateur, Le programme exécutera comme suit: xxx

Si vous devez accéder à la variable globale à l'intérieur de la fonction, utilisez fenêtre.Number . < Pré> xxx


0 commentaires

0
votes

J'ai rencontré cette réponse en 2020 et après avoir cherché un peu plus en ligne, j'ai trouvé que apparemment dans les définitions JavaScript si vous placez des variables en dehors des fonctions ou même créer un fichier appelé globals.js et il suffit de mettre toutes vos variables obligatoires globalement dans ce fichier, faites ce fichier le premier fichier utilisateur .js dans vos balises de script après JQuery et tout autre plug-in que vous avez besoin, les globaux se chargeront avant vos autres scripts et vous permettent d'appeler des variables de Globals.js dans n'importe quel script de la page.

Portée JavaScript W3C

J'ai testé cette théorie dans un PHP application que je suis en construction et j'ai été Capable d'appeler des variables du fichier globals.js dans une page chargée via AJAX à une boîte de dialogue jConfirm pour un assistant de dépannage pour configurer les valeurs de retour pour le moment où la boîte de dialogue est fermée.


0 commentaires