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

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

Problème à la ligne 32 caractère 30: paramètre de radix manquant.

C'est le code en question:

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

Qu'est-ce qui ne va pas ici?

C'est toujours une bonne pratique de passer radix avec parseInt –

 parseInt(string, radix) 

Pour décimales –

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

Si le paramètre radix est omis, JavaScript suppose ce qui suit:

  • Si la chaîne commence par "0x", la base est 16 (hexadécimale)
  • Si la chaîne commence par "0", la base est 8 (octal). Cette fonctionnalité est obsolète
  • Si la chaîne commence avec n'importe quelle autre valeur, la base est 10 (décimale)

( Référence )

Je ne réponds pas correctement à la question, mais je pense qu'il est judicieux de préciser pourquoi nous devrions spécifier le radix .

Sur la documentation MDN, nous pouvons lire ceci:

Si radix est indéfini ou 0 (ou absent), JavaScript suppose ce qui suit:

  • […]
  • Si la chaîne d'entrée commence par "0", radix est huit (octal) ou 10 (décimale). Exactement, ce radix est choisi dépend de la mise en œuvre. ECMAScript 5 spécifie que 10 (décimal) est utilisé, mais tous les navigateurs ne le soutiennent pas encore. Pour cette raison, spécifiez toujours une base lorsque vous utilisez parseInt.
  • […]

Source: MDN parseInt ()

L'ajout de ce qui suit sur votre fichier JS indique à JSHint de supprimer l'avertissement radix:

 /*jshint -W065 */ 

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

Vous pouvez désactiver cette règle si vous souhaitez ignorer ce test.

Insérer:

 radix: false 

Sous la propriété " rules " dans le fichier tslint.json .

Il n'est pas conseillé de le faire si vous ne comprenez pas cette exception.