Oba reprezentují "žádnou hodnotu", ale s odlišným účelem a původem.
Oba reprezentují "žádnou hodnotu", ale s odlišným účelem a původem.
undefined: nepřítomnost hodnoty, obvykle nastavená JavaScript enginem — deklarovaná, ale nepřiřazená proměnná, chybějící vlastnost objektu, parametr funkce, který jste nepředali, nebo funkce bez return.null: úmyslná "prázdná" hodnota, kterou vy přiřadíte, abyste řekli "zde záměrně nic".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
Verejně vymažte hodnotu pomocí null (např. "žádný vybraný uživatel") a undefined považujte za "ještě není nastaveno". Operátory ?? (nullish coalescing) a ?. (optional chaining) zpracovávají oba najednou, proto jsou tak rozšířeně používány.
Knihovna IT otázek k pohovoru s podrobnými odpověďmi — od Junior po Senior.
Přispět