En JavaScript, null
y undefined
representan valores vacíos o inexistentes, pero tienen diferencias importantes en su significado y uso.
null
y undefined
Característica |
null
|
undefined
|
---|---|---|
Significado | Representa la ausencia intencional de un valor. | Indica que una variable ha sido declarada pero no tiene un valor asignado. |
Tipo (typeof )
|
object (esto es un error histórico en JavaScript).
|
undefined .
|
Asignación | Se asigna explícitamente por el programador. | Es el valor por defecto de variables no inicializadas o propiedades inexistentes. |
Uso común | Para indicar que una variable no tiene valor de manera intencional. | Para variables no inicializadas o propiedades de objetos que no existen. |
undefined
(valor por defecto)
let x; // No tiene un valor asignado
console.log(x); // undefined
function saludar() {}
console.log(saludar()); // undefined (porque la función no retorna nada)
let obj = {};
console.log(obj.nombre); // undefined (la propiedad no existe)
null
(asignado intencionalmente)
let y = null; // Se asigna intencionalmente como "sin valor"
console.log(y); // null
null
y undefined
console.log(null == undefined); // true (comparación no estricta)
console.log(null === undefined); // false (comparación estricta)
==
, JavaScript los considera equivalentes.
===
, son diferentes porque null
es de tipo object
y undefined
es de tipo undefined
.
Jorge García
Fullstack developer