null
e undefined
são dois valores especiais em Javascript usados para representar não-valores. Existem dois desses não valores porque
- JavaScript foi projetado com o sistema de tipos do Java em mente e emprestado
null
para representar não um objeto. - O JavaScript inicial lida com erros silenciosamente, levando a bugs inesperados.
undefined
foi adicionado para indicar tal valor. Isso é usado quando uma propriedade / valor deveria acontecer, mas não apareceu.
Portanto, com isso em mente, vamos ver onde podemos encontrar esses valores.
Valores e operadores
Como undefined
é usado para indicar propriedade e valor ausentes, todas as variáveis / propriedades não existentes e variáveis / propriedades não inicializadas teriam um valor de undefined
. Um elemento excluído também tem um valor de undefined
como um espaço reservado para o elemento. (Observe que delete array[index]
não remove o elemento, apenas configurando-o como undefined
)
undefined
também é uma propriedade no objeto global ( global
no ambiente do Node e window
no ambiente do navegador).
void
operador é usado para retornar undefined
qualquer valor fornecido como operando. Existem alguns motivos pelos quais você deseja usar em void
vez deundefined
undefined
valor pode ser ofuscado por outros valores.- Antes do ES5, não havia propriedade somente leitura, portanto, o valor de
undefined
pode ser substituído.
null
, por outro lado, é usado onde nenhum objeto é esperado. Você pode encontrar null
como resultado deObject.getPrototypeOf(Object.prototype)
Tipos e valor
Ambos undefined
e null
são valores primitivos. undefined
é um tipo de si mesmo, enquanto null
indica vazio
Coerção
undefined
representa valores que estão faltando, portanto, quando for coagido ou convertido para o tipo numérico, ele se tornará NaN
, enquanto que null
não representa nenhum valor e quando for coagido, se tornará 0
.