bonjour,
je viens de perdre 3h à trouver un bug stupide de comparaison.
J'accuse le navigateur de ne pas être strict !
mon code exemple :
Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 var a=0; var b=0; a=$("#toto1").attr('truc'); //truc vaut 8 b=$("#toto2").attr('truc'); //truc vaut 11 if (b<a) alert("A gagne"); else alert("null ou B gagne");
je cherchais à comprendre pourquoi ça affichait toujours (b<a) alert("A gagne");.
je viens de découvrir que même si je fais un var nom=integer pour déclarer ma variable, le navigateur laisse une string entrer dedans lors d'une affectation !
quand je fais a=$("#toto1").attr('truc') , attr renvoie une string et pas un integer !!!
du coup, mon (b<a) est une comparaison de chaines ("11"<"8") et pas (11<8) !!
Pourquoi le navigateur ne renvoie pas d'erreur quand j'affecte une string dans une variable déclarée en integer ?
Partager