623 votes

JSLint dit "manquant paramètre radix"; que dois-je faire?

J'ai couru JSLint sur ce code JavaScript et il dit:

Problem at line 32 character 30: Missing radix parameter.

Voici le code en question:

imageIndex = parseInt(id.substring(id.length - 1))-1;

Quel est le problème ici?

1106voto

Jayendra Points 27472

Il est toujours une bonne pratique pour passer radix avec parseInt -

parseInt(string, radix)

Pour le séparateur décimal

parseInt(id.substring(id.length - 1), 10)

Si le radix paramètre est omis, JavaScript suppose les conditions suivantes:

  • Si la chaîne commence par "0x", la base 16 (hexadécimal)
  • Si la chaîne commence par "0", la base 8 (octal). Cette fonction est obsolète
  • Si la chaîne commence avec une autre valeur, la base 10 (décimal)

46voto

nmoliveira Points 621

Je ne suis pas répondre correctement à la question, mais, je pense qu'il fait sens pour effacer pourquoi il convient de spécifier la base.

Sur MDN documentation, nous pouvons lire que:

Si radix est pas défini ou 0 (ou absent), JavaScript suppose les conditions suivantes:

  • [...]
  • Si la chaîne d'entrée commence par "0", radix est de huit (octal) ou 10 (décimal). Exactement ce qui radix est choisi est dépendant de l'implémentation. ECMAScript 5 spécifie que 10 (décimal) est utilisé, mais pas tous les navigateurs prennent en charge cette encore. Pour cette raison, toujours spécifier la base lors de l'utilisation de parseInt.
  • [...]

Source: MDN parseInt()

22voto

aleemb Points 12138

Ajoutant sur le dessus de votre fichier JS dira JSHint pour supprimer la base d'avertissement:

/*jshint -W065 */

Voir aussi: http://jshint.com/docs/#options

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X