NaN é uma propriedade do objeto global, nomeada NaN tendo significado de Not-A-Number(Não é um numero). Nos navegadores modernos, NaN é uma propriedade somente leitura não re-escrevível, não configurável e não enumerável mesmo quando for o caso evite sobrescrevê-lo, o mesmo valida false quando convertido em Booleano, sendo mais direto o erro retorna quando algo não é um numero válido.


Quando se deparar com o erro em questão ao declarar alguma variavel seguindo do $. saiba possiveis causas de origem:


● O número não pode ser analisado (Por exemplo, parseInt("blabla") ou Number(undefined) )

● Operação matemática em que o resultado não é um número real (exempo Math.sqrt(-1) )

● Operando de um argumento é NaN ( por exemplo 7**NaN )

● Forma inderteminada ( por exemplo 0* Infinity, ou undefined + undefined )

● Qualquer operação que envolva uma string e não seja uma operação de adição 

 ( por exemplo "foo" / 3 ).