En JavaScript, `undefined` y `null` son ambos valores especiales que representan la “ausencia de valor”.
Sin embargo, hay una diferencia fundamental entre ellos:
- `undefined` significa que una variable ha sido declarada pero no se le ha asignado un valor. Por otro lado, también significa que se está intentando acceder a una propiedad o variable que no existe. Es el valor por defecto de las variables no inicializadas, los argumentos de función que no se proporcionaron y las propiedades y elementos de array missing. Por ejemplo:
``` let test; console.log(test); // undefined ```- `null` es un valor especial que representa “ningún valor” o “sin valor”. Es un valor que se puede asignar a una variable para representar que no tiene valor. Se utiliza a menudo para indicar la “ausencia intencional” de valor. Por ejemplo:
``` let test = null; console.log(test); // null ```En resumen, `undefined` es cuando el sistema mismo no sabe lo que es algo y `null` es cuando le decimos explícitamente que algo no tiene valor.