probleme simple de portée de variable[Résolu] [JS] - HTML/CSS - Programmation
Marsh Posté le 02-10-2005 à 18:03:40
Code :
|
C'est quoi ce truc de la préhistoire ?
Code :
|
Ca c'est beaucoup plus récent et aux normes
Marsh Posté le 02-10-2005 à 18:19:33
ben, document.write, c'est plus valable non plus en fait
Sinon je ne voie pas ce qu'il y a avec ton j. Essaie dans ta fonction de mettre un j=0; avant les boucles for. Parce que j'aime pas vraiment le js, donc je ne m'y connais pas trop, mais il accepte l'utilisation de variables sans déclaration ?
Marsh Posté le 02-10-2005 à 18:24:59
J'ai essayé et comme je le pensais ca change rien car en effet js accepte l utilisation sans declaration mais avec initialisation, ce qui a été fait dans la boucle for.
J'aime pas vraiment js non plus ca fait toujours des erreurs a 2 balles *soupire*
^^
Marsh Posté le 02-10-2005 à 22:21:57
Tu veux que ca fasse koi ton code ?
que ca ecrive hello dans ta page ?
parce que comme le code est ecris ca va ecrire hello dans le head donc ca risque pas de marcher.
Marsh Posté le 02-10-2005 à 22:25:59
benji_100 a écrit : Bonjour,
|
Remplace 'i=0' et 'j=0' par 'var i=0' et 'var j=0'
Et je vois pas le rapport avec la portée des variables
Marsh Posté le 02-10-2005 à 22:28:12
dans les attributs de body et non pas dans le <head> ... ecris trop vite.
c'est
Code :
|
que tu cherches a faire.
Je ne te donnerai pas la vraie solution bien propre et d'actualite pour faire cela ... car ca ne t'interressera pas ...
Marsh Posté le 02-10-2005 à 22:32:58
Non Masklin ca marche pas j ai deja essayé, pourtant je vois pas du tout (mais alors du tout) pourquoi un code si simple passe pas, alors que plein d autres plus compliqué passent sans soucis... Je parle de portée de variable car le "i" de la premiere boucle for ne pose pas de pb, alors que le "j" de la deuxieme n est pas reconnue ("j undefined" )
afbilou, ce que je veux c'est que ca me fasse pas d erreur !!!
Essayez le faire tourner le code, en tout cas chez moi sous FF et IE ca passe pas.
Le plus bizarre c est que (je me repete) :
avec le alert, ca marche,
avec le document.write, ca passe pas ("j" undefined)
incomprehensible comme message d erreur...
Marsh Posté le 02-10-2005 à 22:35:26
Sisisisi ca m interresse !!! afbilou, si ca te derange pas de prendre qq secondes pour m expliquer ta methode, je ten serai reconnaissant
Marsh Posté le 03-10-2005 à 09:15:26
Citation : dans les attributs de body et non pas dans le <head> ... ecris trop vite. |
Afbilou mercii mercii merciiiii et merci!!! En effet c etait ca le pb , je place mal le code !! J avais pas percuté que JS ecrivait la ou etait le script.
(rires et moqueries, je sais)
Sinon fais nous profiter de ta solution !! En fait la je m entraine a ce language petit mais costaud.(le livre O reilly est tout pti !! - version precis et concis mais tres bien fait pour ceux qui connaissent C C++ et/ou Java)
Encore merci!
Marsh Posté le 03-10-2005 à 11:13:23
de toute manière le Javascript ca ne se met pas dans BODY,ca se met soit dans head, soit dans une page a part, ya des normes faut les respecter
Marsh Posté le 03-10-2005 à 16:03:13
Bah !
Je dis LOl quoi...
Faut accorder vos violons les gars...
Qui a raison ?
Marsh Posté le 03-10-2005 à 16:05:19
On va faire simple:
document.write, c'est le mal
En dehors de document.write, il n'est jamais nécessaire de mettre du javascript dans le body, donc le javascript dans <body> c'est le mal.
Donc le javascript va dans le <head> ou, encore mieux, dans un fichier externe.
Marsh Posté le 03-10-2005 à 16:13:34
Ok merci Masklin je retiendrai.
Autre question rapide : les fonctions ont elles accès aux variables globales en JS ? Autrement, est ce qu il faut déclarer ou passer en parametre toutes les variables dont on aura besoin dans le corps de la fonction?
PS : marrant ton disclaimer Mask
Marsh Posté le 03-10-2005 à 16:20:26
benji_100 a écrit : Autre question rapide : les fonctions ont elles accès aux variables globales en JS ? Autrement, est ce qu il faut déclarer ou passer en parametre toutes les variables dont on aura besoin dans le corps de la fonction? |
Oui, une fonction a accès à toutes les données des scopes supérieures.
Ca permet d'ailleurs (avec quelques mécanismes supplémentaires, parce que simplement la gestion des scopes c'est grandement insuffisant) de générer ce qu'on appelle des closures:
function foo(a) { |
Ici, le "bar" retourné va conserver le "a" présent dans "foo" lorsqu'elle a été créée.
Donc appeler foo(15) va générer la fonction
function bar(b){ |
benji_100 a écrit : PS : marrant ton disclaimer Mask |
Même si il est faux et que les CSS sont à refaire (genre histoire d'arrêter de rendre les gens aveugles quand ils ouvrent la page )
Marsh Posté le 03-10-2005 à 16:45:10
Hahaha
merci encore.
Bon ben j ai un pb avec mon script. Trop bizarre : au premier passage dans la fonction, il ne fait pas d erreur, au second, il ne reconnait plus une varible globale (mais les autres variables globales utilisées dans la fonctions sont toujours bien reconnues).
Comprend pas.
Je creuse et si vraiment je bloque je reposte.
Tx All
Marsh Posté le 02-10-2005 à 18:02:03
Bonjour,
j'ai un problème qui me ronge depuis 1heure !!
Voici le code :
Le code est super simple et je vois pas du tout d'où vient l'erreur !
Les symptomes :
Sous FireFox, la console me dit que 'j' n est pas définie à l'endroit indiqué plus haut.
Lorsque je me alert au lieu de document.write, ca marche parfairement !!
Help
benji
Message édité par benji_100 le 03-10-2005 à 17:41:51