Ambos representan "sin valor", pero con diferente intención y origen.
Ambos representan "sin valor", pero con diferente intención y origen.
undefined: la ausencia de un valor, normalmente establecido por el motor de JavaScript — una variable declarada pero no asignada, una propiedad de objeto inexistente, un parámetro de función que no pasaste, o una función sin return.null: un valor "vacío" intencional que tú asignas para decir "deliberadamente nada aquí".let a; // undefined — declared, not assigned
const obj = {};
obj.missing; // undefined — property doesn't exist
function f() {}
f(); // undefined — no return
const b = null; // null — you chose to empty it
null == undefined; // true — loose equality treats them as equal
null === undefined; // false — different types
typeof undefined; // "undefined"
typeof null; // "object" (historical bug)
const value = input ?? "default"; // defaults on EITHER null or undefined
user?.address?.city; // optional chaining — undefined if any link is null/undefined
Usa null para vaciar un valor deliberadamente (p. ej. "ningún usuario seleccionado"), y trata undefined como "todavía sin establecer". Los operadores ?? (nullish coalescing) y ?. (optional chaining) manejan ambos a la vez, y por eso se usan tan ampliamente.
Una biblioteca de preguntas de entrevista de IT con respuestas detalladas — de Junior a Senior.
Donar