Uruchomiłem JSLint na tym kodzie JavaScript i powiedział:
Problem w wierszu 32 znaku 30: Brak parametru podstawki.
Oto kod, o którym mowa:
imageIndex = parseInt(id.substring(id.length - 1))-1;
Co tu jest nie tak?
javascript
jslint
radix
Mike Vierwind
źródło
źródło
Redundant radix parameter
radix
Argument jest wartością liczbową, a nie ciągiem reprezentującym wartość liczbową, więc nie ma podstawki do określenia.Aby uniknąć tego ostrzeżenia, zamiast używać:
Możesz go zastąpić:
Zauważ, że parseInt i Number mają różne zachowania , ale w niektórych przypadkach jedno może zastąpić drugie.
źródło
parseInt
iNumber
. Oto stary test wydajności .Number()
jest 6 razy szybszy niżparseInt()
Nie odpowiadam poprawnie na pytanie, ale myślę, że sensowne jest wyjaśnienie, dlaczego powinniśmy określić podstawkę .
W dokumentacji MDN możemy przeczytać, że:
Jeśli podstawa jest niezdefiniowana lub 0 (lub nieobecna), JavaScript zakłada:
Źródło: MDN parseInt ()
źródło
Możesz wyłączyć tę regułę, jeśli chcesz pominąć ten test.
Wstawić:
W ramach
rules
właściwości „ ” wtslint.json
pliku.Nie zaleca się tego, jeśli nie rozumiesz tego wyjątku.
źródło
Dodanie następującego na górze pliku JS powie JSHint, aby pomijał ostrzeżenie o radix:
Zobacz także: http://jshint.com/docs/#options
źródło
"-W065": true
np. W.jshintrc
pliku.Rozwiązałem to za pomocą + foo, aby przekonwertować ciąg.
Pamiętaj, że nie jest to świetne dla czytelności (brudna poprawka).
źródło
Możesz także po prostu dodać tę linię bezpośrednio nad linią parsowania:
Spowoduje to wyłączenie sprawdzania eslint dla następnej linii. Użyj tego, jeśli potrzebujesz tylko pominąć jedną lub dwie linie.
źródło
Po prostu umieść pusty ciąg w miejscu Radix, ponieważ parseInt () przyjmuje dwa argumenty:
parseInt (ciąg, podstawa);
ciąg Wartość do przeanalizowania. Jeśli argument ciągu nie jest ciągiem, jest on konwertowany na ciąg (za pomocą operacji abstrakcyjnej ToString). Wiodące białe znaki w argumencie ciągu są ignorowane.
podstawa Liczba całkowita od 2 do 36, która reprezentuje podstawkę (podstawa w matematycznych systemach liczbowych) wyżej wymienionego łańcucha. Podaj 10 dla dziesiętnego systemu liczbowego powszechnie używanego przez ludzi. Zawsze określaj ten parametr, aby wyeliminować zamieszanie czytnika i zagwarantować przewidywalne zachowanie. Różne implementacje dają różne wyniki, gdy podstawa nie jest określona, zwykle przyjmując domyślną wartość 10.
imageIndex = parseInt (id.substring (id.length - 1)) - 1;imageIndex = parseInt(id.substring(id.length - 1), '')-1;
źródło
Po prostu dodaj swoją niestandardową regułę do .eslintrc, która tak wygląda,
"radix": "off"
a będziesz wolny od tego ostrzeżenia o niepowodzeniu eslint. To jest dla okładziny eslint.źródło
Przed ECMAScript 5 parseInt () również automatycznie wykrywał literały ósemkowe, co powodowało problemy, ponieważ wielu programistów zakładało, że wiodące zero będzie ignorowane.
Zamiast:
Zrób to:
Odniesienie
źródło
Zamiast wywoływać
substring
funkcję, której możesz użyć.slice()
Tutaj -1 w wycinku oznacza, że aby rozpocząć wycinek od ostatniego indeksu.
Dzięki.
źródło