Indefinido
Indica que la variable se ha declarado pero no se ha inicializado. Cabe señalar que cuando se usa el operador TypeOf para determinar el tipo de datos, los valores devueltos por variables no declaradas y variables no inicializadas no están definidos.
VAR Mensaje; console.log (mensaje de typeof); // UndefinedConsole.log (edad de typeof); // Undefined
NULL: representa un puntero de objeto vacío
El valor devuelto mediante el uso del operador typeof es 'objeto'. Cabe señalar que el valor indefinido se deriva de un valor nulo, por lo que ECMA-262 estipula que deben devolver verdadero al probar la igualdad.
console.log (nulo == Undefined); // Verdadero
La diferencia entre indefinido y nulo
(1) Undefinado significa que una variable no ha sido declarada, o ha sido declarada pero no ha sido asignada
(2) NULL es un valor que indica "sin valor"
(3) JavaScript establece el valor predeterminado de variables no asignadas a indefinidos
(4) JavaScript nunca establece variables en NULL. Se utiliza para permitir que el programador muestre que una variable declarada con VAR no tiene valor.
(5) Undefinado no es un JSON válido, mientras que NULL es
(6) El tipo de indefinido está indefinido y el tipo de nulo es objeto.
PD: son todos tipos básicos
Todos son falsos (booleanos (indefinidos) // falsos, booleanos (nulo) // falso)
Puede determinar si una variable no está definida de esta manera
typeOf variable === "indefinido"
Puede determinar si una variable es nula de esta manera
variable === nulo
Son iguales en comparación con los signos dobles iguales, pero no son iguales en comparación con tres signos iguales.
null == Undefined // True Null === Undefined // False