Como mostrado por outras respostas aqui, existem várias maneiras de fazer a conversão:
Number('123');
+'123';
parseInt('123');
parseFloat('123.45')
Eu gostaria de mencionar mais uma coisa parseInt
.
Ao usar parseInt
, faz sentido sempre passar o parâmetro radix . Para conversão decimal, é isso 10
. Este é o valor padrão para o parâmetro, e é por isso que ele pode ser omitido. Para binário, é um 2
e 16
para hexadecimal. Na verdade, qualquer mistura entre 2 e 36, inclusive.
parseInt('123') // 123 (don't do this)
parseInt('123', 10) // 123 (much better)
parseInt('1101', 2) // 13
parseInt('0xfae3', 16) // 64227
A parseInt
função, assim, analisa cadeias de caracteres para convertê-las em números. Em algumas implementações de JS, parseInt
analisa zeros à esquerda como octal:
Embora desencorajada pelo ECMAScript 3 e proibida pelo ECMAScript 5, muitas implementações interpretam uma sequência numérica começando com um 0 inicial como octal. O seguinte pode ter um resultado octal ou um resultado decimal.Sempre especifique uma raiz para evitar esse comportamento não confiável.
- MDN
O fato de o código ficar mais claro é um bom efeito colateral da especificação do parâmetro radix.
Como parseFloat
apenas analisa expressões numéricas no radix 10, não há necessidade de um parâmetro radix aqui.
Mais sobre isso: