você está aqui: Home  → Arquivo de Mensagens

Ebook Gratuito: Dá para fazer em Shell?, com o Prof. Julio Neves

Dicas de Programação - Qual a diferença entre NaN, null e undefined no Javascript?

Colaboração: Ricardo Takemura

Data de Publicação: 18 de fevereiro de 2016

O NaN é um resultado de uma operação ou de uma função que não conseguiu retornar um número real válido. Exemplo:

var a = parseInt("aaaa"); 
var b = 0/0; 

null é quando o valor de uma variável esta setada como vazia:

var c = null; 

O undefined é quando uma variável não tem um valor definido ou uma variável não esta definida:

var d; 
alert(typeof(e)); 

Utilizando o operador de comparação os resultados serão:

Para a = parseInt("aaaa") ou b = 0/0

a == Number.NaN -> false (????) 
a === Number.NaN -> false (????) 
a == a -> false (????) 
a === a -> false (????) 
isNaN(a) -> true 

As demais comparações serão false, pois a variável "a" possui um valor.

Para c = null

c == null -> true 
c === null -> true 
c == undefined -> true 
c === undefined -> false 

Para d = undefined

d == null -> true 
d === null -> false 
d == undefined -> true 
d === undefined -> true 

Variável "e" não definido

typeof(e) == "undefined" -> true 
typeof(e) === "undefined" -> true 

As demais comparações serão false, pois o typeof retorna string.



Veja a relação completa dos artigos de Ricardo Takemura