Si un expert en javascript passe par là, qu'il m'explique ce comportement totalement illogique de Javascript sous Firefox :
>>> parseInt('01') 1 >>> parseInt('02') 2 >>> parseInt('03') 3 >>> parseInt('04') 4 >>> parseInt('05') 5 >>> parseInt('06') 6 >>> parseInt('07') 7 >>> parseInt('08') 0 >>> parseInt('09') 0
Pourquoi "08" et "09" sont-ils transformés en 0 alors que les autres sont correctement transposés ???
Commentaires
ParseInt essaye de trouver tout seul la base pour la conversion et les nombres qui commencent par 0 sont donc transposés comme étant initialement en base octale. Tu peux forcer la base 10 grâce au second paramètre de parseInt("08", 10)
Parce que en notation C, un lead 0 sur un nombre indique que ledit nombre est en notation octale. Et donc que "08" et "09" sont NaN (Not a Number).
Ça le fait aussi en PHP.
Mystère résolu.
Je gagne quoi ?
Putain, me suis fait grillé parce que le site d'Hadrien a un Javascript bouseux qui fait un sale refresh.
J'exige qu'on annule cette épreuve pour malfaçon du site.
Ok, c'est donc finalement logique. J'aurais cru que JS utiliserais la base 10 par défaut :/
Ajouter un commentaire
Abonnement aux commentaires
S'abonner pour recevoir les commentaires suivants par email
URL de rétrolien : http://alt-i.fr/trackback/725
Fil des commentaires de ce billet