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 avec alert();
  • 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.

Commentaires les mieux notés

89 Commentaires

  • charlesprat777-89

    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 , merci

    le 11/03/2023 à 23h22

  • Patricio M

    Patricio M Admin

    Ton dernier code est bon!

    le 13/03/2023 à 09h35

  • pademengel-66

    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

    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

    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

    meriam Admin

    Bonjour, pour exécuter la fonction ==> display()

    le 30/05/2022 à 16h02

  • eymeric.delavernette-80

    eymeric.delavernette-80

    c est bon j ai trouvé

    le 23/03/2022 à 14h46

  • meriam

    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

    eymeric.delavernette-80

    bonjour, je ne comprend pas mon erreur,

    le 23/03/2022 à 14h44

  • meriam

    meriam Admin

    Bonjour, votre dernier code est correct.

    le 28/03/2022 à 13h15

  • khadidja

    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 merci

    le 01/03/2022 à 14h33

  • meriam

    meriam Admin

    Bonjour, il faut corriger le nom de la fonction

    le 01/03/2022 à 15h03

  • christophe.gagniere-47

    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

    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

    bilismira-75

    Bonjour, pouvez-vous m'aider svp. je ne trouve pas l'erreur

    le 13/07/2021 à 13h48

  • meriam

    meriam Admin

    Bonjour, pour exécuter une fonction, vous devez écrire display() et pas function display()

    le 14/07/2021 à 10h37

  • anthony.dovetta

    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

    meriam Admin

    Bonjour, il faut vérifier le nom de la fonction display()

    le 05/07/2021 à 12h01

  • PsychoActiF

    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

    meriam Admin

    Bonjour, cette ligne est incorrect ==>(display())();

    le 19/04/2021 à 14h34

  • meriam

    meriam Admin

    Il faut écrire display()

    le 19/04/2021 à 14h34

  • cyril_hoareau-99

    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

    meriam Admin

    Bonjour, votre dernier code est correct.

    le 07/01/2021 à 10h14

  • feraud.brieuc-22

    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

    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

    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

    meriam Admin

    Bonjour, dans le script global, ajoutez alert() pour afficher la variable globale;

    le 09/11/2020 à 08h40

  • Gabriel_Armede-47

    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

    meriam Admin

    Bonjour, j'ai testé votre code et il fonctionne correctement.

    le 23/10/2020 à 13h07

  • darek_kozaczek-68

    darek_kozaczek-68

    var texte = "Globale"; function display(){ var texte = "Locale"; alert(texte); } display(); alert(texte); //robot dit : Vous ne devez avoir qu'une alert

    le 29/06/2020 à 06h16

  • meriam

    meriam Admin

    Votre code est correcte, une mise à jour en cours merci pour votre compréhension.

    le 29/06/2020 à 17h19

index.html
script.js
<!DOCTYPE HTML> <html> <head> <title>Variable locale</title> <script src="script.js"></script> </head> <body> </body> </html>