Exercice 3/11

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/11

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

  • soacynthiasoa-62

    Les parenthèses doivent être collés au nom de la fonciton...

  • nkeshimanabrice-37

    pouvez-vous corriger...

  • mram Administrateur

    Je pense, c'est juste qu'il manque une majuscule au texte ligne 3

  • bretel.val

    Avez-vous bien déclaré la variable locale "texte"? Pourtant c'est bien le bon code

26 Commentaires

  • soacynthiasoa-62

    soacynthiasoa-62

    Les parenthèses doivent être collés au nom de la fonciton...

    le 22/06/2018 à 00h21

  • mram

    mram Administrateur

    Je pense, c'est juste qu'il manque une majuscule au texte ligne 3

    le 08/04/2017 à 08h24

  • bretel.val

    bretel.val

    Avez-vous bien déclaré la variable locale "texte"? Pourtant c'est bien le bon code

    le 07/06/2017 à 22h46

  • mram

    mram Administrateur

    Pas besoin des parenthèses lignes 1 et 3.

    le 14/03/2017 à 00h45

  • maksika

    maksika

    var texte = ("Globale"); function display () { var texte = ("Locale") alert (texte) } display (); alert(texte); Où est l'erreur ? Merci.

    le 12/03/2017 à 16h39

  • bsmeyers84

    bsmeyers84

    message a la validation REFERENCEERROR:GLOBALE IS NOT DEFINED

    le 24/08/2016 à 17h32

  • mickael.59300

    mickael.59300

    var texte = "Globale"; function display() {var texte = "locale"; alert(texte); } display(); alert(texte); ou est le soucis?

    le 04/04/2017 à 09h30

  • mram

    mram Administrateur

    Où sont les guillemets ligne 1 et 3 ?? Lisez attentivement l'énoncé, les guillemets sont bien indiqués...

    le 24/08/2016 à 21h05

  • bsmeyers84

    bsmeyers84

    correction faite et voici le message que j'ai maintenant : AVEC VOUS BIEN DEMANDE A LA FONCTION D'AFFICHER TEXTE

    le 25/08/2016 à 15h43

  • mram

    mram Administrateur

    Vous oubliez des ; en fin de ligne à plusieurs endroits ...

    le 25/08/2016 à 23h24

  • mram

    mram Administrateur

    Le code est bon, Ligne 3 ajoutez un espace après le signe =

    le 12/06/2017 à 15h05

  • patricerameaux

    patricerameaux

    j'ai "avez-vous bien déclaré la variable locale "texte" " : il me semble que oui ... à l' exécution il apparaît "locale" puis "globale"

    le 17/10/2016 à 10h53

  • mram

    mram Administrateur

    Il manque un point-virgule ligne 4 ... Le reste est bon.

    le 18/10/2016 à 09h47

  • salamanders.officiel-69

    salamanders.officiel-69

    Il y a une faute de frappe dans l'énoncé à "variable globale" =)

    le 09/07/2018 à 17h51

  • mram

    mram Administrateur

    Merci pour le retour c'est corrigé.

    le 16/07/2018 à 04h32

  • yusuf_bj1997-17

    yusuf_bj1997-17

    Erreur(s) : "texte" doit contenir "Globale"

    le 30/07/2018 à 13h24

  • mram

    mram Administrateur

    Ligne 4 il faut déclarer la variable avec "var".

    le 04/08/2018 à 23h44

  • alexismoquet

    alexismoquet

    var texte='Globale'; function display () { var texte='Locale'; alert(texte); } display(); alert(texte); Ou est le probleme ? merci.....

    le 25/09/2017 à 16h18

  • mram

    mram Administrateur

    Bonjour, les parenthèses doivent être collées au nom de la fonction.

    le 29/09/2017 à 00h56

  • nathalie.2080

    nathalie.2080

    bonjour,ça fonctionne mais exercice non validé...help

    le 27/12/2017 à 17h58

  • mram

    mram Administrateur

    Bonjour, votre code semble correct. Quelle erreur avez-vous ?

    le 30/12/2017 à 12h44

  • belespoir38

    belespoir38

    var texte= "Globale"; function display() { var texte= "Locale"; alert(texte); } display(); alert(texte); En ayant lu vos commentaires, l'erreur n'est pas qu'il manque une majuscule a texte valeur locale. Le cas échéant merci de validé, j'ai besoin de l'avancement en %. Permettez-moi de vous dire que tout ça est très fastidieux. Comment vont se passer les cours, déjà que je suis très en retard et à la limite du prête ?

    le 13/01/2018 à 22h44

  • mram

    mram Administrateur

    Bonjour, ajoutez juste un espace devant les signes = . Votre structure de code est correcte sinon.

    le 17/01/2018 à 18h57

  • mram

    mram Administrateur

    Ne vous inquiétez pas pour la progression en %. C'est surtout un indicateur pour nous de ce que les futurs élèves ont pu déjà faire avant de venir en formation. Et ce qui est proposé ici n'est pas comparable avec les cours et TD de la formation qui sont effectués en présentiel avec un prof. L'approche pédagogique n'est pas la même que d'être seul(e) face à son PC.

    le 17/01/2018 à 19h01

  • mram

    mram Administrateur

    Donc ne stressez pas par rapport à cela. Faites ce que vous pouvez ici ce sera très bien :)

    le 17/01/2018 à 19h02

  • arnaudfort-81

    arnaudfort-81

    il faut ajouter des espaces avant ET aprés le "=" de la déclaration locale, mais pas pour la déclaration de la variable globe, y à t'il une raison si oui (quelle est cette règle ? )

    le 29/03/2018 à 14h09

  • mram

    mram Administrateur

    Bonjour, il n'y a pas de règle. Les deux options sont correctes. Mais il y a des conventions et des bonnes pratiques. Généralement c'est mieux d'aérer son code donc on le vérifie le plus possible dans les exercices, mais pas partout comme vous le constater ici.

    le 01/04/2018 à 02h29

  • naim-khezzar

    naim-khezzar

    probleme.

    le 12/02/2018 à 00h41

  • mram

    mram Administrateur

    Bonjour, il manque un " e " à Locale

    le 12/02/2018 à 22h13

  • nkeshimanabrice-37

    nkeshimanabrice-37

    merci meriam

    le 11/04/2019 à 11h25

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