você está aqui: Home  → Arquivo de Mensagens

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