Diferencia entre NULL y UNDEFINED en JavaScript
-
Carlos Pérez - 28 Feb, 2024
Diseñada por vectorjuice
Veamos primero la definición de cada uno.
Null: Es un literal de JavaScript que representa intencionalmente un valor nulo o vacíos, es uno de los valores primitivos de JavaScript (no es una propiedad del objeto global como podría ser undefined).
Undefined: Es una propiedad global, es decir, es una variable de alcance global, que representa el valor primitivo undefined y que es utilizado cuando a una variable no se le ha asignado un valor.
Si aplicamos un typeof para verificar que tipo de dato es nos dará lo siguiente:
typeof null; // Esto es un bug, ya que por convención debería ser null
("object");
typeof undefined;
("undefined");
Si comparamos ambos valores obtendremos los siguientes resultados.
null == undefined; // true
null === undefined; // false
Si usamos el operador de igualdad estándar nos indica que ambos valores son iguales, pero si usamos el operador de igualdad estricto, nos muestra que no son iguales, por lo cual es mejor usar el operador de igualdad estricto para tener una comparación real.
Con esto podemos listar las diferencias que hay entre null y undefined
- Null y Undefined indican que hay una ausencia de valor, pero esto no quiere decir que son iguales.
- Null es un literal, mientras que Undefined es una variable de alcance global.
- El valor de null se le asigna a una variable cuando definimos que la variable no tendrá un valor.
- Normalmente en un el uso de APIs se retorna el valor de null en el objeto cuando algún valor no es encontrado o requerido.
- El valor de undefined normalmente se visualiza cuando:
- Una variable no le fue asignado un valor.
- Cuando una variable está siendo evaluada y esta no tiene un valor.
- Cuando una función no ha devuelto un valor.