De acordo com as Leis 12.965/2014 e 13.709/2018, que regulam o uso da Internet e o tratamento de dados pessoais no Brasil, ao me inscrever na newsletter do portal DICAS-L, autorizo o envio de notificações por e-mail ou outros meios e declaro estar ciente e concordar com seus Termos de Uso e Política de Privacidade.
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.