Números são um tipo primitivo em JavaScript, mas a simples utilização do tipo de número não irá diferenciar números de NaN ou Infinity.
  
É útil saber como verificar se um valor é do tipo primitivo número, uma vez que o JavaScript é uma linguagem dinamicamente dactilografada.
 A forma mais fácil de verificar um número é usando typeof, que retornará a string "number" para qualquer valor do tipo primitivo do número, incluindo NaNInfinity, e -Infinity.
Um exemplo quando um número pode aparecer como outro tipo, indicando um erro no meu código, seria na moeda de análise:
 Neste caso, eu saberia que me esqueci de analisar a string num número quando obtive o valor de “string” de typeof.
  
Se eu usar parseFloat() para verificar o valor da moeda, mas esqueci-me de tirar o símbolo da moeda, recebo um parse falhado e um resultado estranho:
Oh, não. Neste caso, parece que typeof não está a funcionar como eu esperava – porque NaN os valores são considerados números em JavaScript.
  
Quando o tipo de palavra-chave retorna “número”
 Uma solução óbvia para verificar o tipo primitivo do número é usar a typeof palavra-chave, como mostrei acima.
 mas typeof é uma solução incompleta, devido a dois valores especiais em JavaScript: NaN (“Não é um Número”) e Infinity.
 Para o meu exemplo de moeda, sei que tenho um bug se o meu valor monetário for NaN ou Infinity, mas typeof devolve "number" para ambos os valores.
Talvez a minha entrada tenha sido escrita usando um símbolo de moeda, e eu simplesmente tentei usar parseFloat() para capturar o valor. Isso resultaria em NaN:
  
Uma função isNumber() personalizada
Arobust, custom isNumber() function would use typeof to check for the primitive type, check for NaN values, and check for Infinity:
Or, no caso em que se esteja confiante de que NaN e Infinity não vão aparecer, basta verificar que typeof==="number" seria suficiente.

  
The 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:
  
Verifica 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.
  
>>>figcaption>Photo by Volkan Olmez on Unsplashh2>Conclusion
A verificação de um número em JavaScript não é particularmente complicada – typeof funciona basicamente como deve ser, desde que se esteja ciente que tanto NaN como Infinity têm o typeof número.
 A forma mais fácil de verificar um número finito (ou seja não NaN ou Infinity) em JavaScript está a usar Number.isFinite(), o que não coage valores a números, ou o global isFinite(), o que executa coerção de tipo.
Checking for an integer specifically involves using the parseInt() function, followed by comparing the parsed value to itself using == (which will type coerce non-number values, such as strings to numbers) or === (which will return true only if both values are numbers).
Acima do capô, os inteiros e os flutuadores são todos iguais: o JavaScript só tem um tipo de número, o tipo primitivo de número.
  
>/div>
Outra leitura
>ul>>li> A função Number.isInteger() não coagula os números:ul>>>li> Sumit Kumar Pradhan escreveu sobre a verificação de números no Dev.to:>ul>>li> Chris Ferdinandi discutindo números de análise no seu blog de baunilha JS:>ul>>>li> A expressão regular ^+(\.{1,2})?$ combina dinheiro:>ul>>>li> Sarah Dayan escreveu sobre análise de dinheiro em JavaScript em frontstuff: