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 ?