En JavaScript, ¿qué devuelve 'typeof null'?

Entendiendo el Comportamiento de 'typeof null' en JavaScript

En JavaScript, el operador typeof es una función muy útil que devuelve el tipo de dato de un operando. Sin embargo, su comportamiento puede resultar un poco confuso cuando se utiliza con el valor null. Aunque podríamos esperar que typeof null devuelva 'null', en realidad devuelve 'object'. Esto es una peculiaridad del lenguaje JavaScript.

Comprendiendo 'typeof null'

Cuando ejecutamos el código typeof null en JavaScript, el resultado es 'object'. Este resultado puede parecer contradictorio, ya que tenemos la creencia intuitiva de que el tipo de null debería ser null. Sin embargo, en JavaScript, null es considerado un valor primitivo que representa la no existencia de cualquier valor o tipo de objeto. Según la documentación oficial de JavaScript, esto es en realidad un error en el lenguaje, pero ha persistido por razones de compatibilidad hacia atrás.

Un ejemplo práctico sería:

var x = null;
console.log(typeof x); // Devuelve 'object'

¿Por qué 'typeof null' es 'object'?

Es importante entender que en JavaScript hay seis tipos primitivos: string, number, boolean, bigint, symbol, y undefined. Además, también tenemos object. Ahora, si bien null es un tipo primitivo, JavaScript lo considera como un valor especial que representa "nada", "vacío" o "valor desconocido", y es de tipo 'object'. Esto es algo que ha sido así desde el principio de JavaScript, y ha permanecido de esta forma por cuestiones de compatibilidad.

Interpretando 'typeof null' en la Práctica

Mientras trabajamos con JavaScript, es conveniente recordar esta característica única de null con typeof. Este comportamiento puede ser confuso, especialmente para aquellos que vienen de otros lenguajes de programación.

Conocer los entresijos de cómo y por qué typeof null devuelve 'object' en JavaScript puede ser de gran ayuda para evitar errores y confusiones más adelante. Por lo que es considerado una buena práctica tener en cuenta este comportamiento a la hora de manejar valores null en su código JavaScript.

¿Te resulta útil?