Entrambi rappresentano "nessun valore," ma con intenzione e origine diverse.
Entrambi rappresentano "nessun valore," ma con intenzione e origine diverse.
undefined: l'assenza di un valore, solitamente impostato dal motore JavaScript — una variabile dichiarata-ma-non-assegnata, una proprietà dell'oggetto mancante, un parametro di funzione che non hai passato, o una funzione senza return.null: un valore "vuoto" intenzionale che tu assegni per dire "deliberatamente niente qui."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
Usate null per cancellare intenzionalmente un valore (ad es. "nessun utente selezionato"), e trattate undefined come "non ancora impostato." Gli operatori ?? (nullish coalescing) e ?. (optional chaining) gestiscono entrambi contemporaneamente, ed è per questo che sono così ampiamente utilizzati.
Una raccolta di domande di colloquio IT con risposte dettagliate — da Junior a Senior.
Dona