JavaScript null vs undefined

Harshit Jindal 12 octubre 2023
  1. null en JavaScript
  2. undefined en JavaScript
  3. ¿Por qué la gente confunde null e undefined con ser lo mismo en JavaScript?
  4. Diferencias entre null e undefined en JavaScript
JavaScript null vs undefined

JavaScript es un lenguaje poderoso, pero el uso de diferentes tipos de datos puede resultar confuso, especialmente para los principiantes. Los tipos de datos null e undefined parecen no representar nada, pero son diferentes.

Uno necesita distinguir entre estos y saber cuándo usar cuál para evitar errores de tiempo de ejecución.

Este artículo analiza null e undefined y su diferencia.

null en JavaScript

null es un objeto en JavaScript. Si no tiene sentido, está bien porque es un error en JavaScript. Se supone que es uno de los tipos de datos primitivos, pero hacer este cambio romperá muchas bases de código existentes.

Es un valor asignado por el usuario; JavaScript nunca da a las variables el valor de null por sí solo. Es un valor asignado a las variables que se dejan en blanco. Se puede hacer referencia a él como un valor vacío.

undefined en JavaScript

undefined es un estado. Cuando declaramos una variable pero nunca la inicializamos con un valor, entonces se llama undefined. Es el valor predeterminado utilizado por JavaScript para inicializar variables. También es un valor vacío.

¿Por qué la gente confunde null e undefined con ser lo mismo en JavaScript?

null y undefined son iguales en los siguientes aspectos:

  • Ambos son tipos de datos primitivos.
  • Si los comparas usando el operador de igualdad ==, devuelve verdadero.
null == undefined;  // returns true

JavaScript considera ambos como valores vacíos.

  • undefined y null dan como resultado false cuando se usan en una expresión.
!!undefined;  // false
!!null;       // false

Diferencias entre null e undefined en JavaScript

  • Diferencia de tipo
console.log(typeof (null));       // object
console.log(typeof (undefined));  // undefined

En el ejemplo anterior, usamos el operador typeof para verificar sus tipos de datos. Devuelve el tipo de datos null como un objeto y el tipo de datos undefined como undefined. Aunque el operador de igualdad == devuelve verdadero, el operador de identidad === devolverá falso ya que tienen el mismo valor pero tienen un tipo de datos diferente.

  • Operaciones aritmeticas

null se comporta como un número sin valor al realizar operaciones aritméticas. La realización de operaciones da resultados similares a si nulo fuera 0.

console.log(4 + null);  // 4
console.log(4 * null);  // 0
console.log(4 - null);  // 4
console.log(4 / null);  // Infinity

Es importante notar que aunque puede ser tratado como 0 en operaciones aritméticas, el valor de null no es 0.

Mientras tanto, undefined devuelve is Not a Number cuando se usa en operaciones aritméticas.

console.log(4 + undefined);  // NaN
console.log(4 * undefined);  // NaN
console.log(4 - undefined);  // NaN
console.log(4 / undefined);  // NaN
Harshit Jindal avatar Harshit Jindal avatar

Harshit Jindal has done his Bachelors in Computer Science Engineering(2021) from DTU. He has always been a problem solver and now turned that into his profession. Currently working at M365 Cloud Security team(Torus) on Cloud Security Services and Datacenter Buildout Automation.

LinkedIn