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>
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>
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!