JavaScript null vs undefined
-
null
en JavaScript -
undefined
en JavaScript -
¿Por qué la gente confunde
null
eundefined
con ser lo mismo en JavaScript? -
Diferencias entre
null
eundefined
en JavaScript
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
ynull
dan como resultadofalse
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 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