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:
nullsignifica que algo no tiene valor.undefinedsignifica que algo no ha sido definido.
Por ejemplo, si creas una variable sin asignarle ningún valor, su valor será undefined:
let rolloDePapel // -> undefinedTambién puedes asignarle undefined directamente, y el resultado es el mismo:
let rolloDePapel = undefined // -> undefinedCon 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.
null === null y undefined === undefined son true.let llamada capacidad y asígnale un valor nulllet llamada dinero y asegúrate que tenga un valor de undefinedComparaciones 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 // -> falseSolo obtienes true al comparar null con null o undefined con undefined:
null === null // -> trueundefined === undefined // -> trueEn resumen
nullyundefinedson dos tipos de datos con un único valor cada uno.undefinedsignifica que algo no ha sido definido: es lo que vale una variable sin valor asignado.nullsignifica que algo no tiene valor, y solo aparece si lo asignas explícitamente.- Con
===son diferentes:null === undefinedesfalse.