Eu executei o JSLint neste código JavaScript e ele disse:
Problema na linha 32, caractere 30: Parâmetro radix ausente.
Este é o código em questão:
imageIndex = parseInt(id.substring(id.length - 1))-1;
O que há de errado aqui?
javascript
jslint
radix
Mike Vierwind
fonte
fonte
Redundant radix parameter
radix
argumento é um valor numérico, não uma representação de seqüência de caracteres de um valor numérico, portanto, não há raiz para especificar.Para evitar esse aviso, em vez de usar:
Você pode substituí-lo por:
Observe que parseInt e Number têm comportamentos diferentes , mas em alguns casos, um pode substituir o outro.
fonte
parseInt
eNumber
. Aqui está um teste de desempenho antigo .Number()
é 6x mais rápido do queparseInt()
Não estou respondendo adequadamente à pergunta, mas acho que faz sentido esclarecer por que devemos especificar a raiz .
Na documentação do MDN, podemos ler o seguinte:
Se a raiz for indefinida ou 0 (ou ausente), o JavaScript assumirá o seguinte:
Fonte: MDN parseInt ()
fonte
Você pode desativar esta regra se desejar pular esse teste.
Inserir:
Sob a
rules
propriedade " " notslint.json
arquivo.Não é recomendável fazer isso se você não entender essa exceção.
fonte
Adicionar o seguinte no topo do seu arquivo JS informará o JSHint para suprimir o aviso de raiz:
Consulte também: http://jshint.com/docs/#options
fonte
"-W065": true
, por exemplo, em um.jshintrc
arquivo.Eu o resolvi usando apenas o + foo, para converter a string.
Lembre-se de que não é ótimo para legibilidade (correção suja).
fonte
Você também pode simplesmente adicionar esta linha logo acima da sua linha parseInt:
Isso desativará a verificação do eslint para a próxima linha. Use isso se você precisar apenas pular uma ou duas linhas.
fonte
Basta colocar uma string vazia no local do radical, porque parseInt () recebe dois argumentos:
parseInt (string, raiz);
string O valor a analisar. Se o argumento da string não for uma string, ele será convertido em uma string (usando a operação abstrata ToString). O espaço em branco à esquerda no argumento da string é ignorado.
radix Um número inteiro entre 2 e 36 que representa o radical (a base nos sistemas de números matemáticos) da string mencionada acima. Especifique 10 para o sistema numeral decimal comumente usado por seres humanos. Sempre especifique este parâmetro para eliminar a confusão do leitor e garantir um comportamento previsível. Implementações diferentes produzem resultados diferentes quando um radical não é especificado, geralmente padronizando o valor para 10.
imageIndex = parseInt (id.substring (id.length - 1)) - 1;imageIndex = parseInt(id.substring(id.length - 1), '')-1;
fonte
Simplesmente adicione sua regra personalizada em .eslintrc, que se parece com isso,
"radix": "off"
e você estará livre deste aviso de falta de manutenção. Isto é para o linter eslint.fonte
Antes do ECMAScript 5, parseInt () também identificava literais octais automaticamente, o que causava problemas porque muitos desenvolvedores supunham que um 0 inicial fosse ignorado.
Então, em vez de:
Faça isso:
Referência
fonte
Em vez de chamar a
substring
função, você poderia usar.slice()
Aqui, -1 na fatia indica que, para iniciar a fatia a partir do último índice.
Obrigado.
fonte