Déclalration de variable

Résolu/Fermé
gaya_102 - 9 févr. 2009 à 10:57
 gaya_102 - 9 févr. 2009 à 11:20
Bonjour,
dans se sript

<SCRIPT language="Javascript">
<!--
var a = 12;
var b = 4;

function MultipliePar2(b) {
var a = b * 2;
return a;
}
document.write("Le double de ",b," est ",MultipliePar2(b));
document.write("La valeur de a est ",a);
// -->
</SCRIPT>

Je ne comprend pas pourquoi a doit renvoyer 12 car pour moi on lui dit a = b*2 donc qui est =8 return a donc pour moi il doit retourner a qui a pris la valeur de 8

1 réponse

NookZ Messages postés 2138 Date d'inscription jeudi 29 janvier 2009 Statut Membre Dernière intervention 7 mars 2013 514
9 févr. 2009 à 11:06
Il y a en fait deux variables a.
L'une est globale : var a = 12; , c'est à dire qu'elle est accessible depuis tout le programme.
L'autre a une portée réduite à la fonction : var a = b * 2; , c'est à dire qu'elle ne sera accessible qu'à l'intérieur de la fonction MultipliePar2(b).
Si on découpe le programme ça donne ça :
a globale = 12
b globale = 4

Appel multipliePar2(b)
b est donc envoyé à l'intérieur de la fonction où elle est modifié
a fonction = b*2
a fonction est retournée et récupérée dans document.write mais pas sous la forme de a globale!
on affiche a globale qui n'a jamais été modifiée!
0
donc en fait return ne fias pas partie de la fonction c'est ca et c'est pour ca que ca renvoie a=12
0
DAns ses cas la pourquoi donner le même nom a deux variables?
0
NookZ Messages postés 2138 Date d'inscription jeudi 29 janvier 2009 Statut Membre Dernière intervention 7 mars 2013 514 > gaya_102
9 févr. 2009 à 11:18
je suppose que c'est pour t'embrouiller XD
Non ça doit être pour bien te faire comprendre que ce sont deux variables différentes à cause de leur portée et que même si elles ont le même nom ça ne veut rien dire.

Après toi en programmant, justement il vaut mieux faire en sorte que tes variables aient des noms différents :)
0
gaya_102 > NookZ Messages postés 2138 Date d'inscription jeudi 29 janvier 2009 Statut Membre Dernière intervention 7 mars 2013
9 févr. 2009 à 11:20
ok je comprend mieu maintenant lol. Je me demande si la prog c'est vraiment pour car je ne m'en sort pas avec les "" ' ' et les différentes variables. C'est pas évident au tout début. En tout cas merci de ton aide. Je continu le tutoriel
0