V boolovském kontextu (if, &&, ||, !) je každá hodnota považována za buď nebo . Existuje přesně — vše ostatní je pravdivé.
V boolovském kontextu (if, &&, ||, !) je každá hodnota považována za buď nebo . Existuje přesně — vše ostatní je pravdivé.
Nepravdivé hodnoty: false, 0, -0, 0n (BigInt nula), "" (prázdný string), null, undefined, NaN.
if ("") {} // skipped — empty string is falsy
if (0) {} // skipped
if ("0") {} // RUNS — non-empty string is truthy!
if ([]) {} // RUNS — empty array is truthy!
if ({}) {} // RUNS — empty object is truthy!
Překvapení: "0", [] a {} jsou všechny pravdivé, i když vypadají "prázdné".
const name = input || "guest"; // ❌ if input is "" or 0, falls back to "guest"
const count = input ?? 0; // ✅ ?? only falls back on null/undefined
|| se vrátí na fallback pro jakoukoli nepravdivou hodnotu, takže platné 0 nebo "" se nahradí. Operátor nullish coalescing ?? se vrátí na fallback pouze pro null/undefined, což je obvykle to, co skutečně chcete.
Znalost přesné sady nepravdivých hodnot zabraňuje jemným chybám — zvláště ochrana čísel (if (count > 0) ne if (count)) a volba ?? versus || pro výchozí hodnoty.
Knihovna IT otázek k pohovoru s podrobnými odpověďmi — od Junior po Senior.
Přispět