Etrangete JavaScript

A

Anonyme

Invité
Bonjour,

je pensais comprendre le javascript jusqu a ce que j essaie de programmer ceci:

Bloc de code:
temp=StartDate;
alert(StartDate);
temp.setDate(temp.getDate()+1)
alert(StartDate);

et voici le resultat des deux commandes PRINT:

Bloc de code:
Mon Dec 08 2008 15:05:32 GMT+0100 (Romance Standard Time)
Tue Dec 09 2008 15:05:32 GMT+0100 (Romance Standard Time)


Comment cela se fait il que mon StartDate change?????
C'est quand même bien la variable temp qui change et pas le StartDate!!!!

Je ne comprends pas tout!!!

Merci de m aider.
 
Bonjour,

je pensais comprendre le javascript jusqu a ce que j essaie de programmer ceci:

Bloc de code:
temp=StartDate;
alert(StartDate);
temp.setDate(temp.getDate()+1)
alert(StartDate);

et voici le resultat des deux commandes PRINT:

Bloc de code:
Mon Dec 08 2008 15:05:32 GMT+0100 (Romance Standard Time)
Tue Dec 09 2008 15:05:32 GMT+0100 (Romance Standard Time)


Comment cela se fait il que mon StartDate change?????
C'est quand même bien la variable temp qui change et pas le StartDate!!!!

Je ne comprends pas tout!!!

Merci de m aider.
C'est quoi StartDate ?

Si c'est ça qui change, ben faudrait nous dire ce que c'est si tu veux qu'on puisse t'aider.
 
Bonjour,

je pensais comprendre le javascript jusqu a ce que j essaie de programmer ceci:

Bloc de code:
temp=StartDate;
alert(StartDate);
temp.setDate(temp.getDate()+1)
alert(StartDate);
et voici le resultat des deux commandes PRINT:

Bloc de code:
Mon Dec 08 2008 15:05:32 GMT+0100 (Romance Standard Time)
Tue Dec 09 2008 15:05:32 GMT+0100 (Romance Standard Time)
Comment cela se fait il que mon StartDate change?????
C'est quand même bien la variable temp qui change et pas le StartDate!!!!

Je ne comprends pas tout!!!

Merci de m aider.

oui effectivement temp = StartDate creer une reference et non une copy
c'est un truc assez connu et deroutant (je rigole la ha les pointeurs c'est mal :) )

Bloc de code:
function copy(receiver){
    var cpy = new receiver.constructor();
    return cpy;
}

var StartDate = new Date();
var temp = copy(StartDate);
alert(StartDate);
temp.setDate(temp.getDate()+1)
alert(StartDate);
alert(temp);
donc voici une approche afin de creer un clone

:):D:D:D c'est pour moi :p

@Didier si tu veux ajouter un commentaire sur ce qui pointe et ce qui est pointé c'est un exellent exemple (surtout dans un language de script dit pointé hihi :D ),
comme pour dire si il avait du C il n'aurait eu aucun probleme pour identifier ce comportement, car je ne le repeterais que trop peu faite du C pas pour le language itself mais pour apprendre les fondements de tous les languages qu ils soient interpretes ou non les languages sont sujets aux memes regles de memoire et de comportement
 
Ptain, tu serais presque compréhensible par un newbie moyen là, je suis bluffé, je t'accorde le 20. =) Ça m'ai l'air pas mal. =)

:affraid::D

Bloc de code:
function isTatouillable(newbie) {
   return (newbie.type == kFemale && newbie.lookandfeel == kAvatar ) ? 1 : 0;
}
sinon y a une pub en bandeau pour un site:

// block qui sera peut etre censuré mais en tant qu'utilisateur de ce forum
et une cible potentiel pour la pub qui passe donc le pourquoi des annouceurs
qui viennent et qui vous donnent des sous

"Muslima.com .... Muslim marriage."

non mais franchement qu'es-ce que ca fou sur macgé?
apres les sites de cul, les sites de rencontres pour delurés de l'anus en tout genre,
le site de rencontre pour les bigots et bigottes c'est vraiment n'importe quoi,
je croyais que la France restait un pays laïc avec des gens laic a l'interieur

surtout qu'ici il n'est authorise d'avoir des relations sexuelles qu'avec steve
ou moi :D parfois je dis vraiment n'importe quoi mais bon ca me fait marrer
c'est quand meme le plus important dans la blague c'est que ca te fasse marrer :affraid:




 
j'imagine que c'est un objet de type Date :p:D

es-ce que j'ai 20/20 pour ce TD ? :D
Bah ça pouvais être un objet perso, pas forcément une Date de JS... D'autant plus que je ne connaissais pas ce comportement là (jamais tombé dessus), et qu'on m'aurait demandé, j'aurais dit que temp était une copie de StartDate...

J'avais jamais remarqué que les variables JS était des pointeurs (enfin se comportent pareil pour la copie).
Faut dire que le seul JS un peu évolué (si on peut dire) que j'ai fait, c'est du jQuery ^^.

Donc ouais, t'as 20/20, mais pas ouame.


PS: j'espère que le tatouillecode est optimisé pour ne pas testé la seconde condition si la première est fausse parce que une comparaison entre le look d'un geek et une tongue ça risque de gueuler (au niveau de l'interpréteur, ou alors ça crashera comme une merde si c'est compilé :p).


EDIT: Yeah! "Activité: 42%"
 
Bah ça pouvais être un objet perso, pas forcément une Date de JS... D'autant plus que je ne connaissais pas ce comportement là (jamais tombé dessus), et qu'on m'aurait demandé, j'aurais dit que temp était une copie de StartDate...
Bah, vu l'erreur, même sans le savoir, il n'y a pas 50 possibilités. ;) À force de vouloir tout masquer à l'utilisateur il en oublie ce qu'il manipule...
 
Bah, vu l'erreur, même sans le savoir, il n'y a pas 50 possibilités. ;) À force de vouloir tout masquer à l'utilisateur il en oublie ce qu'il manipule...
c'est pas terrible d'ailleurs je trouve de masquer les choses comme ça :-/ puis je vois pas l'intérêt...

Au passage, c'est juste les instances d'objet (je sais pas si on peut vraiment parler de classes en js ?) qui sont des "pointeurs" ou il y a d'autres trucs ? (les objets JSON ? les fonctions ?)
 
c'est pas terrible d'ailleurs je trouve de masquer les choses comme ça :-/ puis je vois pas l'intérêt...

Au passage, c'est juste les instances d'objet (je sais pas si on peut vraiment parler de classes en js ?) qui sont des "pointeurs" ou il y a d'autres trucs ? (les objets JSON ? les fonctions ?)

On parle d'objet ou d'instance de classe, mais instance d'objet, à ma connaissance, ça ne veut rien dire. ;) Le JS c'est assez orienté objet... oui tu peux parler de classes. S'il s'appelle JavaScript, c'est bien qu'il a quelques points communs avec son cousin. Pour les fonctions, je crois qu'on peut les passer en paramètre, alors tu peux considérer ça comme des références, enfin je cerne pas bien ta question quand même. Enfin bref, ça change rien au fait que c'est un langage de merde. ;)

Pourquoi on masque les pointeurs ? Parce qu'on a décidé de faire faire de l'informatique à des gens qui sont pas capables de comprendre comment ça marche…

Bon, sur ce, on peut aller dormir. =)
 
le javascript est forme d'objets qui sont des hashtables parfaitement similaire a l'objective-c


une class est un container d'objet un espace de travail ce qu'est une structure en C

struct class {
name;
hash;
isa; // pour convenance
tableauDePointersSurMesSymboles;
}

ceci dit tu obtiendras la meme chose php ou en python except pour les strings qui sont
dans tous les languages de script j'y inclue Java gerees comme un objet "a part" en faite static
 
Merci de ces précisions à grumff et tatouille :)

@grumff: justement "instances d'objet" ça me gênais, mais j'ai lu je sais plus où que js est un langage objet mais pas orienté objet, ou une subtilité du genre je sais plus exactement (le fait qu'il n'y ai pas d'héritage etc).


Bon mais là va falloir que je me replonge dans LaTeX j'ai un rapport à la con à faire pour "Entreprise"... Oui, vous avez bien lu, j'ai des cours d'entreprise à faire à la fac, à cause de leur connerie de "plan licence"... Ces abrutis sont persuadés que si y a du chômage c'est parce que ceux qui font des études scientifique ont pas des cours de management et autre connerie -_-'
 
C'est quoi StartDate ?

Si c'est ça qui change, ben faudrait nous dire ce que c'est si tu veux qu'on puisse t'aider.

Je voulais pas vous embrouiller avec les details.

En fait, j ai une date de depart,StartDate, et pour mon "agenda" que je programme, j aimerais afficher l evenement d une autre date ( que j ai appele Temp) que j obtiens par calcul

ce qui donnerait temp= x jour apres StartDate et je ferais un petit calcul...


Voila pour l explication




En tous cas, un grand merci a Tatouille, il vient de m enlever une grossse epine du pied!


et qu il ne s inquiete pas, je comprends parfaitement les pointeurs, mais n avait pas enregistré qu il allait copier l adresse quand j utilisais le signe '=' contrairement a quand j ecris a=b



en tous cas, mon probleme est resolu, je ne vous remercierai jamais assez pour ces explications claires et rapides!!!




(meme si je comprends plus rien a partir du post suivant :rateau: ) lol
 
Du chômage ? Dans les filières info ? Ah, je savais pas. =)
Pas spécialement dans les filères info, tout le monde y a droit :D

Pour la petite histoire on doit faire un dossier de 30 pages sur la place à laquelle on se verrait bosser, le type de boite, notre role... c'est pas plus précis que ça.
On nous a dit que ce qu'il veulent c'est pas une description de la boite ou de ses activités, ni une fiche sur le métier qu'on veut faire.

Y a juste un truc auquel ils ont pas pensé et que j'arrête pas de leur dire mais je parle à des sourds, c'est par exemple que le métier qu'on fera tant il existe même pas aujourd'hui (surtout en info), et que le métier qu'on pourrait choisir n'existera peut-être même plus quand on sera sur le marché du travail...
Puis je sais pas ce que je veux faire exactement moi... :-/

Vous pouvez pas savoir à quel point ils me font chier avec leurs conneries :(...


Bon et moi j'dois pondre 30 page pour le 10 janvier environ... Pour l'instant j'ai 1 page : dessus y a " Rapport d'Entreprise - Pablo Rauzy - L2 Info ", mais écrit en très gros :D.

J'ai aussi des grosses marges (celle par défaut dans LaTeX), une interligne à 130% et une police en 12pt à la place de 10pt par défaut :p.
 
t'as qu a dire que tu te vois CEO de Microsoft :rateau::D

Pas spécialement dans les filères info, tout le monde y a droit :D

Pour la petite histoire on doit faire un dossier de 30 pages sur la place à laquelle on se verrait bosser, le type de boite, notre role... c'est pas plus précis que ça.
On nous a dit que ce qu'il veulent c'est pas une description de la boite ou de ses activités, ni une fiche sur le métier qu'on veut faire.

Y a juste un truc auquel ils ont pas pensé et que j'arrête pas de leur dire mais je parle à des sourds, c'est par exemple que le métier qu'on fera tant il existe même pas aujourd'hui (surtout en info), et que le métier qu'on pourrait choisir n'existera peut-être même plus quand on sera sur le marché du travail...
Puis je sais pas ce que je veux faire exactement moi... :-/

Vous pouvez pas savoir à quel point ils me font chier avec leurs conneries :(...


Bon et moi j'dois pondre 30 page pour le 10 janvier environ... Pour l'instant j'ai 1 page : dessus y a " Rapport d'Entreprise - Pablo Rauzy - L2 Info ", mais écrit en très gros :D.

J'ai aussi des grosses marges (celle par défaut dans LaTeX), une interligne à 130% et une police en 12pt à la place de 10pt par défaut :p.
 
Parce qu'à la fac il y a d'autres filières que l'info qui amènent à bosser dans le secteur privé ? Je ne savais pas. :D :D

C'est pas la chose la plus inutile que tu feras à la fac de toutes façons. (enfin sauf pour ce qui est du latex quoi)
Ben les filières physique, chimie, maths, mass (math appliqués au science social je crois), BIM (bio info math), bio... Tout le monde y passe... :D

Pour le LaTeX c'est aucun rapport avec la fac c'est moi qui choisi de le faire comme ça, ça fait des rendu bien meilleurs que n'importe quel traitement de textes et puis ça me gonfle moins, c'est un tout petit peu amusant au moins...


@tatouille sûrement pas, juste parce que le prof nous a dit plusieurs fois que Microsoft France est la boite en france qui reçoit le plus de candidature spontanée de gens qui viennent d'avoir leur diplôme ou non et qui veulent bosser là bas...
Ça m'a fait bizarre et je sais toujours pas si je dois y croire ^^.
Mais d'après le prof y a tout plein de mec qui viennent d'avoir leur diplôme d'ingé ou leur master et qui candidate chez Microsoft France, qui n'a plus qu'à choisir parmis, pas là peine de faire des campagnes de recrutement...

Donc me voir bosser chez microsoft ça lui donne trop raison j'aime pas :D


Mais bon je sais vraiment pas quoi faire. Juste pour faire chier (et aussi parce que c'est en grosse partie vrai) je me vois bien dire que je veux faire de la recherche dans le publique et pas dans une boîte :D
Bon mais c'pas très réaliste la recherche dans le publique dans le futur :rateau: :)()

Sérieusement, je sais pas du tout quoi faire...
 
@tatouille sûrement pas, juste parce que le prof nous a dit plusieurs fois que Microsoft France est la boite en france qui reçoit le plus de candidature spontanée de gens qui viennent d'avoir leur diplôme ou non et qui veulent bosser là bas...
Ça m'a fait bizarre et je sais toujours pas si je dois y croire ^^.
Mais d'après le prof y a tout plein de mec qui viennent d'avoir leur diplôme d'ingé ou leur master et qui candidate chez Microsoft France, qui n'a plus qu'à choisir parmis, pas là peine de faire des campagnes de recrutement...
Mouais, une chose est d'avoir des candidats, une autre est de voir qui sont ces candidats. La plupart des informaticiens un temps soit peu intelligent ont curieusement une certaine tendance à détester micro$oft.
 
Mouais, une chose est d'avoir des candidats, une autre est de voir qui sont ces candidats. La plupart des informaticiens un temps soit peu intelligent ont curieusement une certaine tendance à détester micro$oft.
Ben ouais c'est bien ce qui me semble, mais lui il nous sort que Microsoft c'est en france comme Google aux US : tout le monde veut y travailler (ce sont ses mots)...

meh