684 Stimmen

JSLint sagt "fehlender Radix-Parameter"

Ich habe JSLint auf diesen JavaScript-Code angewendet und es sagte:

Problem in Zeile 32 Zeichen 30: Fehlender Radix-Parameter.

Dies ist der betreffende Code:

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

Was ist hier falsch?

22voto

SanTom Punkte 161

Vor ECMAScript 5 erkannte parseInt() auch automatisch oktale Literale, was zu Problemen führte, da viele Entwickler davon ausgingen, dass eine führende 0 ignoriert würde.

Stattdessen:

var num = parseInt("071");      // 57

Tun Sie dies:

var num = parseInt("071", 10);  // 71

var num = parseInt("071", 8);

var num = parseFloat(someValue); 

Referenz

6voto

Goran_Ilic_Ilke Punkte 744

Fügen Sie einfach Ihre benutzerdefinierte Regel in .eslintrc ein, die wie folgt aussieht "radix": "off" und Sie sind frei von dieser eslint Unnesesery Warnung. Dies ist für den eslint linter.

4voto

user2369834 Punkte 53

Ich habe das Problem gelöst, indem ich einfach das +foo verwendet habe, um die Zeichenkette zu konvertieren.

Denken Sie daran, dass dies nicht gut für die Lesbarkeit ist (schmutzige Korrektur).

console.log( +'1' )
// 1 (int)

4voto

Rohit Nethi Punkte 119

Sie können diese Zeile auch einfach direkt über Ihrer parseInt-Zeile einfügen:

// eslint-disable-next-line

Dadurch wird die eslint-Prüfung für die nächste Zeile deaktiviert. Verwenden Sie dies, wenn Sie nur eine oder zwei Zeilen überspringen müssen.

2voto

Ahmed.Dz Punkte 21

Setzen Sie einfach eine leere Zeichenkette an die Radix-Stelle, da parseInt() zwei Argumente benötigt:

parseInt(string, radix);

Zeichenfolge Der zu parsende Wert. Wenn das String-Argument keine Zeichenkette ist, wird es in eine Zeichenkette umgewandelt (unter Verwendung der abstrakten Operation ToString). Führende Leerzeichen im String-Argument werden ignoriert.

radix Eine ganze Zahl zwischen 2 und 36, die das Radix (die Basis in mathematischen Zahlensystemen) der oben genannten Zeichenfolge darstellt. Geben Sie 10 für das von Menschen üblicherweise verwendete Dezimalsystem an. Geben Sie diesen Parameter immer an, um Verwirrung beim Leser zu vermeiden und ein vorhersehbares Verhalten zu gewährleisten. Verschiedene Implementierungen liefern unterschiedliche Ergebnisse, wenn kein Radix angegeben wird, und setzen den Wert normalerweise auf 10.

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

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X