Un bogue est apparu dans le programme aujourd'hui. Je l'ai débogué pendant longtemps et j'ai finalement découvert que c'était ce problème.
Une expérience a été réalisée:
alert (parseInt ("01")), lorsque la valeur dans ceci est 01 ====> 07, elle est normale, mais dans "08", "09" reviendra 0.
(Ce phénomène se produit dans les navigateurs du noyau IKEA, comme le navigateur 360, cette erreur se produira) (Google, Firefox ne sera pas affecté)
.
J'ai appris les raisons de ce phénomène après avoir lu les informations:
L'explication du grand dieu:
01-07 n'a naturellement aucun problème, mais 09 et 08 sont toutes des formes octales non qualifiées, donc elles ont été traitées comme 0. Pour résoudre ce problème, vous pouvez utiliser un autre paramètre de la fonction Parseint pour dire à Parseint de le traiter en décimal.
ParseInt ("08", 10) ou ParseInt ("09", 10)
ParseInt (String, Radix) doit convertir la chaîne en entiers. Le deuxième paramètre consiste à définir le format de chaîne. Les couramment utilisés sont 2, 8, 10 et 16, indiquant le nombre de la chaîne dans le numéro binaire.
La plage de radix peut être souhaitable est de 2 ~ 36. Si ce n'est pas dans cette plage, NAN sera retourné.
Si la valeur de Radix est définie à 0 ou non, le format de chaîne sera automatiquement reconnu:
En commençant par "0x", ParseInt () traitera le reste de la chaîne sauf 0x comme un numéro hexadécimal.
En commençant par "0", ParseInt () traitera des personnages autres que 0 comme des nombres octaux ou hexadécimaux.
En commençant par les numéros 1 à 9, ParseInt () le traitera comme un numéro décimal.
Ce qui précède est la connaissance pertinente sur les raisons pour lesquelles ParseInt ("08") et "09" renvoient 0 en JavaScript qui vous est présenté. J'espère que cela vous sera utile. Si vous avez des questions, veuillez me laisser un message et l'éditeur vous répondra à temps. Merci beaucoup pour votre soutien au site Web Wulin.com!