Maison >interface Web >js tutoriel >Pourquoi « parseInt » donne-t-il parfois des résultats inattendus avec des zéros non significatifs ?
Contourner le comportement octal perplexe de ParsInt de JavaScript
La fonction parseInt de JavaScript se comporte parfois de manière inattendue, en particulier lorsqu'il s'agit de zéros non significatifs. Plus précisément, les nombres avec des zéros non significatifs sont interprétés à tort comme des entiers octaux, ce qui entraîne des résultats erronés. Ce problème provient de l'hypothèse de la fonction parseInt selon laquelle un zéro non significatif désigne un nombre octal. Comme les nombres octaux excluent 8 et 9, les valeurs commençant par ces chiffres sont interprétées à tort comme des zéros.
Surmonter le problème octal
Heureusement, il existe plusieurs stratégies pour contourner ce problème particulier. comportement :
1. Spécification de base explicite :
En définissant explicitement la base ou la base, nous pouvons garantir que parseInt interprète l'entrée comme un nombre décimal. Par exemple :
parseInt('08', 10); // 8
2. Méthode numérique :
Une autre option consiste à utiliser la méthode numérique, qui interprète automatiquement la saisie comme un nombre décimal :
Number('08'); // 8
Remarque :
La norme ES5 a introduit une modification qui élimine ce comportement octal déroutant. Cependant, cette modification dépend du navigateur. Veuillez consulter la documentation de Mozilla pour plus de détails.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!