Junior
Como converter uma string em número em JavaScript?
sobes.tech IA
Resposta da IA
Em JavaScript, a conversão de strings em números pode ser feita de várias maneiras:
-
Conversões implícitas de tipos:
- Operadores matemáticos: por exemplo, o sinal mais unário
+ou subtração-.
// Conversão implícita com o sinal mais unário let str = "123"; let num = +str; // num = 123 (número)- Operações aritméticas: ao usar operadores aritméticos, o JavaScript tentará converter os operandos em números.
// Conversão implícita com subtração let str1 = "10"; let str2 = "5"; let result = str1 - str2; // result = 5 (número) - Operadores matemáticos: por exemplo, o sinal mais unário
-
Conversões explícitas de tipos:
parseInt(string, radix): Converte uma string em um inteiro. Recomenda-se especificar o segundo argumentoradix(base do sistema numérico) para evitar comportamentos inesperados.
// Conversão explícita com parseInt let strInt = "42px"; let numInt = parseInt(strInt, 10); // numInt = 42 (inteiro) let strBinary = "101"; let numBinary = parseInt(strBinary, 2); // numBinary = 5 (inteiro)parseFloat(string): Converte uma string em um número de ponto flutuante. Analisa a string até o primeiro caractere não numérico ou ponto.
// Conversão explícita com parseFloat let strFloat = "3.14abc"; let numFloat = parseFloat(strFloat); // numFloat = 3.14 (número de ponto flutuante)Number(value): Converte qualquer valor em um número. É uma abordagem mais estrita em comparação comparseInteparseFloat. Se a string não puder ser completamente convertida em um número, retornaNaN.
// Conversão explícita com Number let strNum = "123.45"; let numFromNumber = Number(strNum); // numFromNumber = 123.45 (número) let strInvalid = "hello"; let numInvalid = Number(strInvalid); // numInvalid = NaN
Diferenças e características:
| Método | Descrição | Retorna NaN com string inválida | Analisa do início até o primeiro não número |
|---|---|---|---|
+string |
Conversão implícita com o sinal mais unário. | NaN |
Não (toda a string) |
string - 0 |
Conversão implícita com subtração. | NaN |
Não (toda a string) |
parseInt() |
Analisa um inteiro. | NaN |
Sim |
parseFloat() |
Analisa um número de ponto flutuante. | NaN |
Sim |
Number() |
Conversão explícita. Mais estrita. | NaN |
Não (toda a string) |
A escolha do método depende da tarefa específica e do formato esperado da string de entrada. Number() é preferido para converter strings que representam números inteiros ou decimais sem caracteres adicionais. parseInt() e parseFloat() são úteis para extrair valores numéricos de strings que contêm símbolos adicionais (por exemplo, unidades de medida). A conversão implícita deve ser usada com cautela, compreendendo seu comportamento.