div>
Photo por 🇨🇭 Claudio Schwarz | @purzlbaum on UnsplashThe oneliner
Eu adoro os one-liners. Penso que precisam de ser documentados com comentários, mas penso que são realmente úteis, e não apenas extravagantes.
Aqui está o forro de uma linha para saber como verificar um número em JavaScript:
But, existe uma forma melhor de verificar um número finito em JavaScript – a função auxiliar Number.isFinite()
tem o mesmo comportamento que a função personalizada isNumber()
que eu escrevi. Incluo um exemplo na secção seguinte.
A forma mais fácil de verificar um número: Number.isFinite()
Na realidade, é desnecessário escrever funções personalizadas para verificar um número, embora seja uma forma instrutiva de lembrar que os valores JavaScript Infinity
-Infinity
, e NaN
são todos do tipo primitivo do número.
“O método Number.isFinite()
determina se o valor passado é um número finito”. – MDN Docs
O método Number.isFinite()
irá retornar true
para números finitos, e false
for Infinity
-Infinity
, e NaN
– exactamente o que queremos:
Há também a função global isFinite()
, que executará a coerção do tipo (tal como coercing strings a números), como mostrado acima.
Discutamos estes métodos em profundidade no meu artigo sobre Infinity
em The Startup:
Photo by Bogomil Mihaylov on UnsplashVerifica se uma variável é um número inteiro
Para verificar se a variável A é um número inteiro poderia usar o operador de igualdade solto ==
para ver se o valor parsed é igual a si próprio.
O seguinte trecho de código dá um exemplo de como verificar se um inteiro é um número inteiro:
Utilizando typeof
diferenciaria uma string que está a ser coagida a um número de um número real, tal como o operador de igualdade rigorosa ===
.
h2>Tirar símbolos de moeda
Para um melhor, função mais robusta, posso querer retirar primeiro os símbolos da moeda (como o símbolo do dólar e quaisquer vírgulas).
A análise detalhada do dinheiro usando expressões regulares em JavaScript está fora do âmbito deste artigo, mas este código remove $
e ,
antes de analisar:
Nota que as funções globais parseInt()
e parseFloat()
irão coagir valores a cordas, se necessário, e retornará NaN
se a coerção falhar.
Existem também as funções Numbers.parseInt()
e Number.parseFloat()
, que têm o mesmo comportamento exacto.
De acordo com os documentos MDN, essas funções duplicadas foram adicionadas ao ECMAScript 2015 para a “modularização da finalidade dos globais”.”
O JavaScript tem de facto números inteiros separados?
Não, o JavaScript tem apenas um tipo de número, que é representado internamente como uma representação de ponto flutuante de 64 bits.
Esse ponto flutuante é o número do tipo de dados primitivo, e há também um tipo chamado BigInt que pode ser usado para números arbitrariamente grandes.
As funções globais parseInt()
e parseFloat()
diferem naquilo que esperam e irão produzir, mas não porque existem de facto tipos de inteiros e de ponto flutuante separados em JavaScript.