Le navigateur ne créer pas une erreur quand on attribue une valeur différente du type de variable
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:
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 ?