Indefinido
Indica que a variável foi declarada, mas não foi inicializada. Deve -se notar que, ao usar o operador TIPOOF para determinar o tipo de dados, os valores retornados por variáveis não declarados e variáveis não inicializadas são indefinidas.
var message; console.log (typeof message); // undefinedconsole.log (tipo de idade); // indefinido
nulo: representa um ponteiro de objeto vazio
O valor retornado usando o operador TypeOf é 'objeto'. Deve-se notar que o valor indefinido é derivado de um valor nulo; portanto, a ECMA-262 estipula que eles devem retornar verdadeiros ao testar a igualdade.
console.log (null == indefinido); // true
A diferença entre indefinida e nula
(1) indefinido significa que uma variável não foi declarada, ou foi declarada, mas não foi atribuída
(2) NULL é um valor que indica "sem valor"
(3) JavaScript define o valor padrão das variáveis não atribuídas
(4) JavaScript nunca define variáveis para nulo. É usado para permitir que o programador mostre que uma variável declarada com VAR não tem valor.
(5) indefinido não é um JSON válido, enquanto Null é
(6) O tipo de indefinição é indefinido e o tipo de nulo é objeto.
PS: todos são tipos básicos
Eles são todos falsos (booleanos (indefinidos) // falso, booleano (nulo) // false)
Você pode determinar se uma variável é indefinida dessa maneira
TIPOOF variável === "indefinido"
Você pode determinar se uma variável é nula dessa maneira
variável === NULL
Eles são iguais quando comparados com sinais iguais duplos, mas não são iguais quando comparados com três sinais iguais.
null == indefinido // true null === indefinido // false