javascript variable

javascript variable - Programmation

Marsh Posté le 11-04-2001 à 10:32:43    

dans une fonction, si j'utilise une variable qui a été défini en dehors de la fonction, ça marche plus,
 
var i;
function toc() {
if (i=="5" ) {
machin bidule }
 
dans mon exemple la variable i est à l'exterieur de la fonction. quant j'appel toc() il ne connait pas i
y a t'il un moyen de definir la variable pour quelle puisse tourner sur toute les futur fuctions

Reply

Marsh Posté le 11-04-2001 à 10:32:43   

Reply

Marsh Posté le 11-04-2001 à 10:43:30    

normalement cela devrait marcher mais le probleme est que tu n'initialise pas ta variable donc pour l'instant je crois que son type est undefined que tu peux tester par la methode typeof


---------------
Ce qui vaut la peine d'être fait vaut la peine d'être bien fait
Reply

Marsh Posté le 11-04-2001 à 10:58:20    

merci pour ton aide, mais je comprends pas ta réponse !
 
tu veux pas être plus claire dans ce que je dois faire pour que ma variable i soit accessible dans chaque fonction.

Reply

Marsh Posté le 11-04-2001 à 11:00:30    

mets var i = "";


---------------
Ce qui vaut la peine d'être fait vaut la peine d'être bien fait
Reply

Marsh Posté le 11-04-2001 à 11:06:11    

ça change rien, p't être que je con ! voila un exemple de code (qui test la longueur d'une adresse mail)
 
var mailchain,maillong;
mailchain=document.formu.mail.value ;
maillong=mailchain.length ;
 
function testmail() {
alert("votre mail fait " +maillong+ " caractères" );
}

Reply

Marsh Posté le 11-04-2001 à 11:08:49    

Bin je connais rien en javascript, mais peut etre faut il que tu declare tes variables en globales.... enfin dans bcp de langage c comme ça alors regarde voir si ya pas un truc du genre

Reply

Marsh Posté le 11-04-2001 à 11:09:49    

ben la tu vois si ton javascript ne marche pas c'est pas normal. (c'est quoi le naviguateur) ?

Reply

Marsh Posté le 11-04-2001 à 11:12:04    

oui car les variables globales c ce que tu fais, il suffit de les declarer en dehors des fonctions ... c assez aisé ..


---------------
Ce qui vaut la peine d'être fait vaut la peine d'être bien fait
Reply

Marsh Posté le 11-04-2001 à 11:19:59    

j'ai IE5  
et quand je la met dans la fonction ça marche ? c'est spéc hein!

Reply

Marsh Posté le 11-04-2001 à 11:29:05    

c ptet paske ton script tu le fais au debut...
et donc document.blabla ... bah i connait pas encore.. enfin, jsuis pas sur mais regarde de ce cote la...
Met des valeur fixe pour tester... du genre variable="toto" et appelle ta fonction.


---------------
"C'est le boulot qu'on ne commence jamais qui est le plus long à terminer"
Reply

Marsh Posté le 11-04-2001 à 11:29:05   

Reply

Marsh Posté le 11-04-2001 à 11:30:24    

Ben wouatouwouatou je lui ai proposé et il dit que cela ne change rien.


---------------
Ce qui vaut la peine d'être fait vaut la peine d'être bien fait
Reply

Marsh Posté le 11-04-2001 à 11:35:51    

lamatrice a écrit a écrit :

dans une fonction, si j'utilise une variable qui a été défini en dehors de la fonction, ça marche plus,
 
var i;
function toc() {
if (i=="5" ) {
machin bidule }
 
dans mon exemple la variable i est à l'exterieur de la fonction. quant j'appel toc() il ne connait pas i
y a t'il un moyen de definir la variable pour quelle puisse tourner sur toute les futur fuctions




 
Hi,
 
Il faut que tu enleves le "var" devant "i", si tu veux que ta variable soit global.
 
@+
 
Bonne suite

Reply

Marsh Posté le 11-04-2001 à 11:38:47    

bon alors précisons
 
 
je reprends mon bout de code pour être claire
 
var mailchain,maillong,test;  
mailchain=document.formu.mail.value ;  
maillong=mailchain.length ;  
test="toto"
function testmail() {  
alert("votre mail fait " +test+ " caractères" );  
}
ce code fonctionne avec la variable test
mais si dans mon alert je remplace test par maillong, il me dis "indéfini" ?
par contre si je met l'affectation de mailong et de mailchain dans la funcion là il prend le fils de p....
bon voilà je suis content de ne pas être un imbécile .

Reply

Marsh Posté le 11-04-2001 à 12:01:30    

lamatrice a écrit a écrit :

bon alors précisons
 
 
je reprends mon bout de code pour être claire
 
var mailchain,maillong,test;  
mailchain=document.formu.mail.value ;  
maillong=mailchain.length ;  
test="toto"
function testmail() {  
alert("votre mail fait " +test+ " caractères" );  
}
ce code fonctionne avec la variable test
mais si dans mon alert je remplace test par maillong, il me dis "indéfini" ?
par contre si je met l'affectation de mailong et de mailchain dans la funcion là il prend le fils de p....
bon voilà je suis content de ne pas être un imbécile .




 
 
Dans ce cas c est tout a fait normal.
 
Le fonctionnement est le suivant :
La page HTML est interprete pas le navigateur.
Donc ds le tag JAVACSRIPT, tout ce qui n est pas fonction javascript est execute.
Donc :
mailchain=document.formu.mail.value ;  
maillong=mailchain.length ;  
est execute. Mais bien sur au debut, ta variable mail est pas definie, puisque ton tag input est definie apres.
 
Si tu veux pas l affichage "undefined" il faut que tu mettes ton tag JAVASCRIPT apres le tag INPUT.
 
Mais ca ne marchera toujours pas puisque, a chaque fois, qui tu vas executer ta fonction, la chaine maillong aura la valeur, a l interpretation de la page (cad vide);
Donc tu es oblige de la mettre ds ta fonction :
 
mailchain=document.formu.mail.value ;  
maillong=mailchain.length ;  
 
et ca marche
 
@+
 
Bonne suite

Reply

Marsh Posté le 11-04-2001 à 12:04:18    

speeder06> Mets d'ou tiens tu cette information, le mot var n'est qu'une methode de declaration, methode propore à chaque langage, cela n'a jamais eu un qq conque rapport avec la definition de varaibles globales. simplement il est certain qu'il ne faut l'utiliser qu'une seule fois pour une variable car sinon cela revient est de la double declaration. C tres simple comme te l'a dit precedemment wouatouwouatou tu l'initialise avec une valuer qui n'existe pas encore lors de la lecture de page par le navigateur


---------------
Ce qui vaut la peine d'être fait vaut la peine d'être bien fait
Reply

Marsh Posté le 11-04-2001 à 12:04:49    

voila une réponse qui a le mérite d'être claire.
 
merci !

Reply

Marsh Posté le 11-04-2001 à 12:08:00    

Excuse pour cette info, non correcte.
J ai confondu avec autre chose
 
Desolee

Reply

Marsh Posté le 11-04-2001 à 12:45:31    

nabab, ce que voulait dire speeder06, c'est que
 
Dans une fonction, si tu défini un variable sans utiliser le mot var, elle est automatiquement variable globale, ce qui revient au même que de l'avoir définit en dehors de cette fonction.
 
si je me trompe ?

Reply

Marsh Posté le 11-04-2001 à 13:06:49    

oui


---------------
Webmaster du site de l'Île-Saint-Denis : http://www.lile-saint-denis.fr
Reply

Marsh Posté le 11-04-2001 à 13:15:35    

nabab a écrit a écrit :

Ben wouatouwouatou je lui ai proposé et il dit que cela ne change rien.




mais son initialisation comme jai dit est pas bon...
il a surement initialisé avec document.blabla...


---------------
"C'est le boulot qu'on ne commence jamais qui est le plus long à terminer"
Reply

Marsh Posté le 11-04-2001 à 13:54:39    

lamatrice> oui mais c un comportement par defaut de l'intrepreteur javascript.
 
Pour moi speeder06, disait d'enlever le "var" devant le var i qui etait ecrit en dehors d'un code de fontion.
 
Mais y a pas de mal, je voulais d'ailleurs savoir ou cela pouvait etre ecrit afin de regarder excatement ce qu'il voulait dire ...
 
wouatouwouatou> ca y est speeder06 a pondu une solution assez nickel


---------------
Ce qui vaut la peine d'être fait vaut la peine d'être bien fait
Reply

Marsh Posté le 11-04-2001 à 14:02:05    

oups.. désolé, javai pas vu :D


---------------
"C'est le boulot qu'on ne commence jamais qui est le plus long à terminer"
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed