Maison > interface Web > js tutoriel > Pourquoi « parseInt » donne-t-il parfois des résultats inattendus avec des zéros non significatifs ?

Pourquoi « parseInt » donne-t-il parfois des résultats inattendus avec des zéros non significatifs ?

Patricia Arquette
Libérer: 2024-12-11 01:42:14
original
837 Les gens l'ont consulté

Why Does `parseInt` Sometimes Give Unexpected Results with Leading Zeros?

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
Copier après la connexion

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
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal