Saltar al contenido principal
01Introducción

null y undefined

Clase 10 de 102 min de lectura

¿Cómo le dices a JavaScript que algo está vacío? ¿Y que algo ni siquiera se ha definido todavía? Suena a lo mismo, pero no lo es, y para cada caso hay un tipo de dato: null y undefined.

Ya conoces los números, las cadenas de texto y los booleanos. Estos dos tipos se parecen entre sí y comparten una particularidad: cada uno tiene un único valor. El tipo null solo puede tener el valor null y el tipo undefined solo puede tener el valor undefined.

Si un booleano podía ser true o false, aquí ni siquiera hay dos opciones para elegir.

La diferencia entre null y undefined#

La diferencia está en el matiz:

  • null significa que algo no tiene valor.
  • undefined significa que algo no ha sido definido.

Por ejemplo, si creas una variable sin asignarle ningún valor, su valor será undefined:

let rolloDePapel // -> undefined

También puedes asignarle undefined directamente, y el resultado es el mismo:

let rolloDePapel = undefined // -> undefined

Con null no hay atajos. Una variable solo vale null si se lo asignas tú explícitamente:

let rolloDePapel = null

¿Y por qué la variable se llama rolloDePapel? Por esta imagen, que lo explica mejor que cualquier definición. Con 0 hay un rollo, pero sin papel. Con null está el soporte, vacío. Con undefined no hay ni soporte.

Infografía
undefined frente a null
5.Cada uno solo es igual a sí mismo: null === null y undefined === undefined son true.
Paso 5 de 5
Ejercicios de código interactivos
Crea una variable con let llamada capacidad y asígnale un valor null
Crea una variable con let llamada dinero y asegúrate que tenga un valor de undefined

Comparaciones con null y undefined#

Que se parezcan no significa que sean iguales. Con la igualdad estricta === que ya conoces, null y undefined son valores diferentes:

null === undefined // -> false

Solo obtienes true al comparar null con null o undefined con undefined:

null === null // -> trueundefined === undefined // -> true

En resumen

  • null y undefined son dos tipos de datos con un único valor cada uno.
  • undefined significa que algo no ha sido definido: es lo que vale una variable sin valor asignado.
  • null significa que algo no tiene valor, y solo aparece si lo asignas explícitamente.
  • Con === son diferentes: null === undefined es false.