uso-de-null-y-undefined-en-javascript

Qué es y cómo usar null y undefined en JavaScript

En Javascript, las variables son contendores que usamos para guardar valores. Dos ‘especiales’ y que nos vamos a encontrar con más frecuencia son undefined y null.

Ambos tienen similitudes, en el sentido de que se utilizan para indicar que una variable no tiene un valor significativo (o valido, o valor en absoluto).

Sin embargo, tienen significados y usos diferentes:

  • undefined: Es el valor asignado automáticamente a una variable que ha sido declarada pero no inicializada

  • null: Es un valor asignado explícitamente a una variable para indicar que no tiene un valor. Se utiliza para representar la ausencia intencional de un valor

Es decir, como vemos, la diferencia entre uno y otro es que undefined es automático, y null explicito.

Valor undefined

undefined es un valor primitivo en JavaScript. Se utiliza para indicar que una variable ha sido declarada, pero no ha sido inicializada con un valor.

Donde nos vamos a encontrar undefined

Variables no inicializadas

Si intentamos acceder a una variable declarada, pero aún pero no inicializada, su valor es undefined.

let x;
console.log(x); // undefined

Propiedades no existentes

Si se intentamos acceder a una propiedad que no existe en un objeto, el resultado es undefined.

let obj = {};
console.log(obj.propiedadNoExistente); // undefined

Funciones sin return

Las funciones que no tienen una declaración return implícitamente retornan undefined.

function miFuncion() {}

console.log(miFuncion()); // undefined

Argumentos no proporcionados

Si un argumento no se proporciona al llamar a una función, su valor es undefined.

function saludar(nombre) {
   console.log(nombre);
}
saludar(); // undefined

En resumen, tendremos undefined cada vez que vayamos a acceder algo, que no está (o aún no está) javascript-undefined-travolta

Esto es undefined

Valor null

null es un valor primitivo que se usa para indicar intencionalmente la ausencia de valor. A diferencia de undefined, que generalmente es asignado automáticamente, null es explícitamente asignado por el programador.

Donde nos vamos a encontrar null

Asignación Explícita

En este caso, x se inicializa explícitamente con null, indicando que no tiene un valor.

let x = null;
console.log(x); // null

Objetos Vacíos

Utilizar null en propiedades de objetos puede ser una forma de indicar que no se ha asignado ningún valor a esa propiedad.

let obj = { propiedad: null };

console.log(obj.propiedad); // null