Cuál es la diferencia entre null y undefined en JavaScript

Javascript

En este breve tutorial vamos a ver las diferencias que existen entre los valores null y undefined en JavaScript. Para empezar, diremos que tanto null como undefined son tipos primitivos, y ahí terminan sus similitudes.

Cuando una variable tiene el valor undefined, significa que la variable ha sido declarada, pero que carece de valor. Esto puede resultar confuso, ya que cuando accedes a una variable que no ha sido declarada, se mostrará el siguiente error:

ReferenceError: <variable> is not defined

Sin embargo, esto no significará que su valor sea undefined, ya que como hemos dicho, las variables cuyo valor es undefined, han sido previamente declaradas. Es importante que te quedes con esto.

Vamos a poner como ejemplo estas variables:

let nombre;
let apellido = null;

La variable nombre tendrá el valor undefined, mientras que la variable apellido tendrá el valor null.

Para comprobar si una variable tiene el valor null, debes usar el operador de comparación:

if (apellido === null) {
  // Código
}

Del mismo modo, también podrás usar el operador de comparación para saber si una variable tiene el valor undefined:

if (nombre === undefined) {
  // Código
}

Demás, también funcionará el operador de negación. Es decir !null es verdadero y, del mismo modo, !undefined también es verdadero. Tendiendo esto en cuenta, los siguientes bloques de código siempre se ejecutarán si partimos de las variables nombre y apellido que hemos declarado como ejemplo.

En el caso de la variable nombre:

if (!nombre) {
  // Este código se ejecutará
}

Y en el caso de la variable apellido:

if (!apellido) {
  // Este código se ejecutará
}

Además, también podrás usar el operador typeof para obtener los tipos de las variables, que devolverá 'undefined' en caso de que la variable sea undefined y 'object' en caso de que sea null.

En el caso de la variable nombre, el siguiente código siempre se ejecutará:

let nombre;
if (typeof nombre === 'undefined') {
  // Este código se ejecutará
}

En el caso de la variable apellido, el siguiente código también se ejecutará:

let apellido = null;
if (typeof apellido === 'object') {
  // Este código se ejecutará
}

Es importante que te quedes con que, a pesar de que null es un tipo primitivo, su tipo se evaluará como 'object'.

Y esto ha sido todo.


Avatar de Edu Lazaro

Edu Lázaro: Ingeniero técnico en informática, actualmente trabajo como desarrollador web y programador de videojuegos.

👋 Hola! Soy Edu, me encanta crear cosas y he redactado esta guía. Si te ha resultado útil, el mayor favor que me podrías hacer es el de compatirla en Twitter 😊

Si quieres conocer mis proyectos, sígueme en Twitter.

Deja una respuesta

“- Hey, Doc. No tenemos suficiente carretera para ir a 140/h km. - ¿Carretera? A donde vamos, no necesitaremos carreteras.”