Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Diferença] parseInt() vs Number()

Quando preciso converter textos para número, qual é a melhor opção e qual a diferença entre elas?

Matricule-se agora e aproveite até 50% OFF

O maior desconto do ano para você evoluir com a maior escola de tecnologia

QUERO APROVEITAR
1 resposta
solução!

Oii, Pedro.

A diferença entre parseInt() e Number() no JavaScript tá no modo como cada um converte strings em números e no tipo de valor que aceitam ou retornam.

1. parseInt():

  • Função: converte uma string em um inteiro.

  • Modo de funcionamento: lê a string da esquerda para a direita e para no primeiro caractere que não pode fazer parte de um número inteiro.

  • Sintaxe:

    parseInt(string, base);
    

    O segundo parâmetro (base) indica o sistema numérico (por exemplo, 10 para decimal, 16 para hexadecimal).

Exemplos:

parseInt("42");        // 42
parseInt("42.9");      // 42   > ignora o decimal
parseInt("42abc");     // 42   > para quando encontra letra
parseInt("abc42");     // NaN  >  não começa com número
parseInt("101", 2);    // 5    > interpreta como binário

Resumo:

  • Converte apenas até onde consegue ler um número válido.
  • Ignora o restante da string.
  • Sempre retorna um número inteiro.

2. Number():

  • Função: converte o valor inteiro ou decimal completo.
  • Modo de funcionamento: tenta converter a string inteira em número. Se algum caractere não for válido, o resultado é NaN.

Exemplos:

Number("42");       // 42
Number("42.9");     // 42.9
Number("42abc");    // NaN   → string inválida
Number("   42 ");   // 42    → ignora espaços
Number(true);       // 1
Number(false);      // 0
Number(null);       // 0
Number(undefined);  // NaN

Resumo:

  • Mais rigoroso: a string precisa representar um número inteiro ou decimal válido.
  • Aceita valores booleanos e null (converte para 0/1).
  • Retorna números inteiros ou decimais.

3. Quando usar cada um

  • Use parseInt() quando quiser extrair um número inteiro de uma string que pode conter outros caracteres (como "50px").
  • Use Number() quando quiser converter valores que devem ser totalmente numéricos e talvez incluam decimais.

Resumo comparativo:

FunçãoTipo de retornoLê parcial?Aceita decimais?Exemplo útil
parseInt()InteiroSimNão"120px" > 120
Number()Inteiro/DecimalNãoSim"3.14" > 3.14

Em resumo:

  • parseInt() é mais tolerante, mas só dá inteiros.
  • Number() é mais preciso e estrito, mas aceita decimais e outros tipos.
Conteúdos relacionados
Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!