Diferencias entre ‘Undefined’ y ‘null’ (Javascript)

null vs undefined en JavaScript - Arquitectura Java
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
Undefined y null pertenecen a los «JavaScript’s 7 primitive types» o los tipos de datos primitivos de Javascript, como son los:
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
  • String
  • Boolean
  • Number
Con la doble negación de Javascript que se utiliza para forzar a algunos valores a booleano podemos comprobar que:
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
console.log(!!undefined); // False
console.log(!!null); // False
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
Ambos valores son falsos.
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
Sin embargo, su diferencia es que «undefined» es el valor por defecto de una variable que no se le ha asignado un valor especifico o el valor de una función que no tiene un retorno especifico o una propiedad que no existe en un objeto. Javascript no sabe qué es esa variable.
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
let ThisIsUndefined;
const doNothing = () => { };
const someObj = {
    a«asd»,
    b«qwe»,
    c«zxc»
};
console.log(thisIsUndefined); // undefined
console.log(doNothing()); // undefined
console.log(someObj[«d»]); // undefined
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
Null es un valor que representa ningún valor. Null es un valor que se asigna a través de código todo lo contrario a «undefined» que es asignado por Javascript.
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
Otra diferencia es que Null toma el valor de 0 en una operación matemática:
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
console.log(1+null) // resultado: 1
En cambio si hacemos la misma operación esta vez con «undefined».
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
console.log(1+undefined) //  resultado: NaN
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
NaN: Not A Number (No es un número)
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
Resumen:
  • Undefined y Null se diferencian por: Undefined es asignado por Javascript, Null es escrito a través de código.
  • Null es la representación de ningún valor, Undefined es un valor por defecto que tiene una variable o el retorno de una función o la propiedad de un objeto cuando no se le ha asignado un valor especifico.
  • Con Undefined NO PODEMOS realizar operaciones matemáticas,  con Null SÍ PODEMOS hacerlo y este tomará el valor de 0.

Dejar un comentario

Tu dirección de correo electrónico no será publicada.