Quando preciso converter textos para número, qual é a melhor opção e qual a diferença entre elas?
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Quando preciso converter textos para número, qual é a melhor opção e qual a diferença entre elas?
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:
2. Number():
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:
3. Quando usar cada um
parseInt() quando quiser extrair um número inteiro de uma string que pode conter outros caracteres (como "50px").Number() quando quiser converter valores que devem ser totalmente numéricos e talvez incluam decimais.Resumo comparativo:
| Função | Tipo de retorno | Lê parcial? | Aceita decimais? | Exemplo útil |
|---|---|---|---|---|
parseInt() | Inteiro | Sim | Não | "120px" > 120 |
Number() | Inteiro/Decimal | Não | Sim | "3.14" > 3.14 |
Em resumo:
parseInt() é mais tolerante, mas só dá inteiros.Number() é mais preciso e estrito, mas aceita decimais e outros tipos.