OVH Cloud OVH Cloud

IF me fait des miseres

7 réponses
Avatar
Veevee
Bonjour,
je suis en train da'pprendre JS, je pose donc une question de neuneu :

Dans un script JS Je pose une condition IF suivant les règles.
Quelle que soit la valeur comparée à une valeur "témoin" je passe par
la procédure VRAI, alors que manifestement, on devrait ne pas y
passer.

Le fichier est sur http://perso.wanadoo.fr/la.mirandole/index.html

Merci à celui qui me tirera de ce pétrin élémentaire


A+

7 réponses

Avatar
M. B.
Bonjour.

En js, comme en C ou C++ ou java ou C# ou ..., un test d'egalite
s'ecrit avec "==", pas avec "=".

if(valeur == autre_valeur) ...

MB

<Veevee> a écrit dans le message de
news:
Bonjour,
je suis en train da'pprendre JS, je pose donc une question de neuneu :

Dans un script JS Je pose une condition IF suivant les règles.
Quelle que soit la valeur comparée à une valeur "témoin" je passe par
la procédure VRAI, alors que manifestement, on devrait ne pas y
passer.

Le fichier est sur http://perso.wanadoo.fr/la.mirandole/index.html

Merci à celui qui me tirera de ce pétrin élémentaire


A+


Avatar
Francis Spiesser
Bonjour.

En js, comme en C ou C++ ou java ou C# ou ..., un test d'egalite
s'ecrit avec "==", pas avec "=".

if(valeur == autre_valeur) ...



Et d'autre part les values des textbox sont des chaines

=> if (valeur=='22')

--
______
Francis (enlever .NIPUBNISOUMIS)
"Un four cuit toujours trop ou pas assez. Un micro-onde fait même les
deux à la fois"

Avatar
YD


Bonjour.

En js, comme en C ou C++ ou java ou C# ou ..., un test d'egalite
s'ecrit avec "==", pas avec "=".

if(valeur == autre_valeur) ...


Et d'autre part les values des textbox sont des chaines

=> if (valeur=='22')

Certes, mais comme JS est très souple 22 == '22' est true !


--
Y.D.


Avatar
Francis Spiesser
=> if (valeur=='22')

Certes, mais comme JS est très souple 22 == '22' est true !



Dans un cas aussi simple bien sûr, mais mieux vaut ne pas céder à ce
genre de facilités...

--
______
Francis (enlever .NIPUBNISOUMIS)
"Un synonyme, c'est un mot qu'on écrit pour remplacer celui dont on ne
connaît pas l'orthographe."


Avatar
M. B.
"YD" a écrit dans le message de
news:41cfe631$0$24803$


Et d'autre part les values des textbox sont des chaines

=> if (valeur=='22')

Certes, mais comme JS est très souple 22 == '22' est true !




Mais (22 + '22' == '44') est false ...

Bizarre ce langage ;-)

MB


Avatar
Thibaut Allender
Certes, mais comme JS est très souple 22 == '22' est true !


Mais (22 + '22' == '44') est false ...

Bizarre ce langage ;-)


par contre (22 + '22' == '2222') doit être true
les strings l'emportent sur les int, c'est tout à son honneur au
contraire :)

--
thibaut allender | freelance | http://capsule.org


Avatar
YD

Certes, mais comme JS est très souple 22 == '22' est true !



Mais (22 + '22' == '44') est false ...

Bizarre ce langage ;-)



par contre (22 + '22' == '2222') doit être true


A) Et même 22 + '22' == 2222 :-)
B) Alors que 22 + +'22' == 44 ('44' aussi...)

les strings l'emportent sur les int, c'est tout à son honneur au
contraire :)


Pour être plus précis, on va rappeler que l'opérateur + est soit
celui de la concaténation des chaînes, soit celui de l'addition, mais
que lorsqu'un des opérandes est une chaîne, il convertit l'autre en
chaîne (si nécessaire) et effectue la concaténation. En outre, pour
simplifier les choses, + est aussi un opérateur unaire qui convertit son
opérande en nombre (ou la valeur NaN), cf. B).

Bon, ce doit être le seul opérateur à pouvoir effectuer trois opérations
selon ses arguments...

--
Y.D.