Exercice 3/12
Dans le fichier "script.js"
:
- déclarez une variable globale
texte
avec le texte "Globale"(en dehors de la fonction); - déclarez la fonction
display
; - dans la fonction, déclarez la variable locale
texte
avec le texte "Locale"; - la fonction doit afficher
texte
avecalert()
; - dans le script global, exécutez la fonction
display
; - dans le script global, ajoutez
alert()
pour afficher la variable globale; - cliquez sur "Soumettre ma réponse".
Remarque :
Ici les deux variables portent le même nom. Pendant l'exécution de la fonction, la valeur locale écrasera donc la valeur globale.
Mais une fois la fonction exécutée et la variable locale détruite, la valeur déclarée globalement ne sera plus écrasée.
Leçon 3/12
Si une fonction a accès à une variable globale, cela fonctionne-t-il dans le sens contraire ? Et bien non.
Une variable déclarée au sein même d'une fonction est une variable locale et elle n'est pas accessible dans le reste du script. Et ce pour la bonne raison que une fois la fonction exécutée, la variable locale est détruite.
Exemple :
// on déclare une fonction
function test() {
var localVar = "Variable locale";
alert(localVar);
}
// on exécute la fonction
test();
// on affiche directement localVar
alert(localVar);
Ici, la fonction test()
va bien afficher "Variable locale" car la fonction a accès à la variable. Mais le alert()
qui se trouve dans le script global va renvoyer undefined
car il n'a pas accès à la variable déclarée dans la fonction.
Il faut donc faire attention à la portée d'une variable.
Globale ou locale ?
Faut-il donc déclarer toutes les variables globalement ?
Non, car si une variable n'est utilisée que dans une fonction, alors il suffit jsute de la déclarer localement dans la fonction. Elle ne sera pas utile dans le reste du script.
89 Commentaires
-
charlesprat777-89
bonjour je ne comprend pas mon erreur , le bot me dit que je ne doit avoir qu'une seule alert() , mais celon ma comprehension de l'enonce je doit en mettre une dans la fonction et une apres , mercile 11/03/2023 à 23h22
-
Patricio M Admin
Ton dernier code est bon!
le 13/03/2023 à 09h35
-
pademengel-66
Bonjour, est-ce que mon code est correct ? var texte = "Globale" function display(){ var texte ="Locale"; alert(texte) } diplay() alert(texte);le 29/09/2022 à 14h06
-
Patricio M Admin
la logique est correcte, parcontre c'est DISPLAY et non DIPLAY... pense que DIPLAY ou ALCHLJFGHLEKHFLEK pour JS est pareil, il ne va jamais trouver la fonction si le nom n'est pas le même
le 29/09/2022 à 14h44
-
julien.blacteau-1
Je ne comprend pas pourquoi ça ne fonctionne pas... var texte ="Globale"; function display(){ var texte ="Locale"; alert(texte);} function display() alert(texte);le 30/05/2022 à 09h05
-
meriam Admin
Bonjour, pour exécuter la fonction ==> display()
le 30/05/2022 à 16h02
-
eymeric.delavernette-80
c est bon j ai trouvéle 23/03/2022 à 14h46
-
meriam Admin
N'hésitez pas à demander de l'aide si vous trouvez des problèmes dans les exercices suivants.Bon travail.
le 23/03/2022 à 14h47
-
eymeric.delavernette-80
bonjour, je ne comprend pas mon erreur,le 23/03/2022 à 14h44
-
meriam Admin
Bonjour, votre dernier code est correct.
le 28/03/2022 à 13h15
-
khadidja
var texte = "Globale"; function display () { var texte = "Locale"; alert(texte); } display(); alert(texte); msg : vos devez déclarez une fonction ! jai besoin une correction svp mercile 01/03/2022 à 14h33
-
meriam Admin
Bonjour, il faut corriger le nom de la fonction
le 01/03/2022 à 15h03
-
christophe.gagniere-47
Bonjour, dans la leçon 1 il est écrit qu'il n'y a pas de ";" dans une fonction. Mais dans l'exemple que vous donnez dans la leçon 3 il y en a à la fin de var et alert ? Pouvez vous m'expliquer svp?le 15/02/2022 à 09h25
-
meriam Admin
Bonjour, on ajoute de ";" à la fin de chaque instruction comme var texte ='Local'; comme alert(texte)
le 15/02/2022 à 09h40
-
bilismira-75
Bonjour, pouvez-vous m'aider svp. je ne trouve pas l'erreurle 13/07/2021 à 13h48
-
meriam Admin
Bonjour, pour exécuter une fonction, vous devez écrire display() et pas function display()
le 14/07/2021 à 10h37
-
anthony.dovetta
Je n'arrive également pas à valider, j'ai le même message d'erreur. A savoir "Vous ne devez avoir qu'une alert.le 03/07/2021 à 08h31
-
meriam Admin
Bonjour, il faut vérifier le nom de la fonction display()
le 05/07/2021 à 12h01
-
PsychoActiF
Bonjour, comme le précédent exercice il y doit y avoir un problème sur les déclarations des 'alert' je vous ai laissé mon observation en com dans je code du JS. D'avance merci.le 17/04/2021 à 12h49
-
meriam Admin
Bonjour, cette ligne est incorrect ==>(display())();
le 19/04/2021 à 14h34
-
meriam Admin
Il faut écrire display()
le 19/04/2021 à 14h34
-
cyril_hoareau-99
Même erreur que l'exercice précédent, " Vous ne devez avoir qu'une alert " se qui est plutôt handicapant, car pour pouvoir prétendre à l'entrée en formation, il faut valider ces trois modules de remises à niveau, sauf qu'entre les bugs d'exercices, les % d'avancement qui sont faussés, je sens venir le refus d'admission malgré tout mon investissement....le 07/01/2021 à 06h10
-
meriam Admin
Bonjour, votre dernier code est correct.
le 07/01/2021 à 10h14
-
feraud.brieuc-22
"vous ne devez avoir qu'une seule alerte" je vois des vieux commentaires parler d'un bug, est-il toujours présent?le 11/12/2020 à 03h22
-
meriam Admin
Bonjour, aprés l'exécution de la fonction display(), , ajoutez alert() pour afficher la variable globale;
le 11/12/2020 à 09h03
-
rezz'777
var texte = "Globale" function display () { var texte = "Locale" alert(texte) } display(); jai la meme erreur qu'à l'exercice précédent " Vous ne devez avoir qu'une alert "le 08/11/2020 à 07h55
-
meriam Admin
Bonjour, dans le script global, ajoutez alert() pour afficher la variable globale;
le 09/11/2020 à 08h40
-
Gabriel_Armede-47
"Vous ne devez avoir qu'une alert" le bug n'a pas été corrigé ? Il y avais la même pour l'exercice précédent je l'ai skip ...le 22/10/2020 à 13h26
-
meriam Admin
Bonjour, j'ai testé votre code et il fonctionne correctement.
le 23/10/2020 à 13h07
-
darek_kozaczek-68
var texte = "Globale"; function display(){ var texte = "Locale"; alert(texte); } display(); alert(texte); //robot dit : Vous ne devez avoir qu'une alertle 29/06/2020 à 06h16
-
meriam Admin
Votre code est correcte, une mise à jour en cours merci pour votre compréhension.
le 29/06/2020 à 17h19
Commentaires les mieux notés