Maison > interface Web > js tutoriel > le corps du texte

Pourquoi JavaScript interprète-t-il les nombres zéro comme des nombres octaux ?

Patricia Arquette
Libérer: 2024-11-05 16:46:02
original
802 Les gens l'ont consulté

Why Does JavaScript Interpret Leading-Zero Numbers as Octals?

Pourquoi JavaScript traite les nombres zéro comme des nombres octaux

En JavaScript, les nombres commençant par un zéro non significatif sont interprétés comme des nombres octaux (base 8 ). Ce comportement provient d'une extension facultative dans ECMAScript 3 qui autorisait les zéros non significatifs dans les littéraux octaux.

La conversion LegacyOctalIntegerLiteral

Cependant, cette extension était interdite en mode strict dans ECMAScript 5. Par conséquent, les nombres avec des zéros non significatifs dans le code en mode strict sont traités comme des littéraux décimaux et entraînent des erreurs.

En mode non strict, le comportement spécifique à l'implémentation détermine la façon dont les nombres avec des zéros non significatifs sont traités. Certains navigateurs peuvent toujours les interpréter comme des littéraux octaux, tandis que d'autres peuvent générer des erreurs.

Empêcher l'interprétation octale

Pour garantir que les nombres sont analysés correctement en base 10, il existe deux méthodes :

1. Supprimer les zéros non significatifs

Supprimez simplement le zéro non significatif du nombre avant de l'attribuer, comme indiqué ci-dessous :

<code class="javascript">var x = 10; // Corrected to remove leading zero</code>
Copier après la connexion

2. Utilisez parseInt(string, radix)

La fonction parseInt() prend une chaîne comme argument et permet de spécifier la base (base) dans laquelle la chaîne doit être interprétée. Pour les nombres décimaux, utilisez une base de 10, comme suit :

<code class="javascript">var x = parseInt("010", 10);</code>
Copier après la connexion

Conclusion

Pour éviter que les nombres zéro non significatifs ne soient traités comme des nombres octaux en JavaScript, il est Il est recommandé de supprimer les zéros non significatifs ou d'utiliser parseInt() avec une base de 10. Cela garantit que les nombres sont systématiquement analysés en base 10, quel que soit le mode JavaScript utilisé.

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
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!