JSLint mówi "Brak parametru radix"; co powinienem zrobić?
Uruchomiłem JSLint na tym kodzie JavaScript i powiedział:
Problem w linii 32 znak 30: Brak parametru radix.
Oto Kod, o którym mowa:
imageIndex = parseInt(id.substring(id.length - 1))-1;
Co tu się dzieje? 8 answers
Zawsze dobrą praktyką jest przepuszczanie radix z parseInt -
parseInt(string, radix)
Dla dziesiętnego-
parseInt(id.substring(id.length - 1), 10)
Jeśli parametr radix jest pominięty, JavaScript przyjmuje następujące wartości:
- jeśli łańcuch zaczyna się od "0x", radix wynosi 16 (szesnastkowo)
- jeśli łańcuch zaczyna się od "0", radix wynosi 8 (ósemka). Ta funkcja jest przestarzała
- jeśli łańcuch zaczyna się od innej wartości, radix wynosi 10 (dziesiętne)
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-03-30 01:49:01
Nie odpowiadam właściwie na pytanie, ale myślę, że to ma sens, aby wyjaśnić Dlaczego powinniśmy określić radix .
Na dokumentacji MDN możemy przeczytać, że:
Jeśli radix jest niezdefiniowany lub 0 (lub nieobecny), JavaScript przyjmuje następujące wartości:
- [...]
- Jeśli łańcuch wejściowy zaczyna się od "0", radix wynosi osiem (ósemkowe) lub 10 (dziesiętne). Dokładnie wybrany radix zależy od implementacji. ECMAScript 5 określa, że używane jest 10 (dziesiętnych), ale nie wszystkie przeglądarki obsługują to jeszcze. Z tego powodu zawsze podaj radix podczas korzystania z parseInt.
- [...]
Źródło: MDN parseInt()
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-12-17 13:09:14
Dodanie następującego elementu na górze pliku JS spowoduje, że JSHint powstrzyma Ostrzeżenie radix:
/*jshint -W065 */
Zobacz też: http://jshint.com/docs/#options
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-05-01 21:06:41
Możesz wyłączyć tę regułę, jeśli chcesz pominąć ten test.
Insert:
radix: false
Pod właściwością "rules
" w pliku tslint.json
.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-12-30 09:36:02
Aby uniknąć tego ostrzeżenia, zamiast używać:
parseInt("999", 10);
Można go zastąpić przez:
Number("999");
zauważ, że parseInt i Number mają różne zachowania , ale w niektórych przypadkach jedno może zastąpić drugie.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-04-13 12:47:29
Rozwiązałem to tylko za pomocą + foo, aby przekonwertować ciąg znaków.
Należy pamiętać, że nie jest to dobre dla czytelności (dirty fix).
console.log( +'1' )
// 1 (int)
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-02-16 09:59:43
Możesz również po prostu dodać tę linię tuż nad linią parseInt:
// eslint-disable-next-line
Spowoduje to wyłączenie sprawdzania eslint dla następnej linii. Użyj tego, jeśli chcesz pominąć tylko jedną lub dwie linie.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-04-01 21:02:22
Po prostu umieść pusty łańcuch w miejscu radix, ponieważ parseInt() przyjmuje dwa argumenty:
ParseInt(string, radix);
String Wartość do analizy. Jeżeli argument string nie jest łańcuchem, wtedy jest on skonwertowany na łańcuch (przy użyciu abstrakcyjnej operacji ToString). Początkowe białe znaki w argumencie string są ignorowane.
Radix Liczba całkowita między 2 A 36, która reprezentuje radix (bazę w matematycznych systemach liczbowych) wyżej wymienionego ciągu. Określ 10 dla system liczb dziesiętnych powszechnie używany przez ludzi. Zawsze określ ten parametr, aby wyeliminować dezorientację czytelnika i zagwarantować przewidywalne zachowanie. Różne implementacje dają różne wyniki, gdy radix nie jest określony, Zwykle ustawiając wartość domyślną na 10.
imageIndex = parseInt ( id.substring(id.długość - 1))-1;imageIndex = parseInt(id.substring(id.length - 1), '')-1;
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-04-11 02:59:32