"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como posso evitar problemas de interpretação octal do parseInt em JavaScript?

Como posso evitar problemas de interpretação octal do parseInt em JavaScript?

Publicado em 2024-12-22
Navegar:611

How Can I Avoid parseInt's Octal Interpretation Issues in JavaScript?

Perigo octal do JavaScript: soluções alternativas para o mau comportamento do parseInt

A função parseInt do JavaScript pode tropeçar ao encontrar números com zeros à esquerda. O problema decorre de sua tendência de interpretar zeros à esquerda como dígitos octais, levando a resultados errôneos.

Exemplo:

parseInt('01'); // 1
parseInt('08'); // 0 (invalid octal digit)

Alternativas:

  • Especifique a Base (Radix)

A solução mais direta é fornecer explicitamente a base ou raiz do número. Isso pode ser feito usando o segundo parâmetro de parseInt:

parseInt('08', 10); // 8 (specifying base 10)
  • Use Number Constructor

Alternativamente, o construtor Number pode ser usado para analisar números, incluindo aqueles com zeros à esquerda:

Number('08'); // 8
  • Converter para string de base 10

Outra abordagem é converter a string para base 10 antes de analisá-la:

parseInt(parseInt('08', 8).toString(), 10); // 8 (convert octal to base 10)
  • Usar expressão regular

Expressões regulares podem ser empregadas para remover zeros à esquerda:

parseInt(/^0 (.*)$/gm('008')); // 8 (match and capture non-zero digits)

Nota:

Na 5ª edição do JavaScript (ECMA-262), o comportamento de parseInt mudou, eliminando a questão da interpretação octal. No entanto, para compatibilidade com versões mais antigas do JavaScript, é recomendado usar uma das soluções alternativas mencionadas acima ao encontrar números com zeros à esquerda.

Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3