I ett booleskt sammanhang (en if, &&, ||, !) behandlas varje värde som antingen eller . Det finns exakt — allt annat är truthy.
I ett booleskt sammanhang (en if, &&, ||, !) behandlas varje värde som antingen eller . Det finns exakt — allt annat är truthy.
De falsy värdena: false, 0, -0, 0n (BigInt noll), "" (tom sträng), 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!
Överraskningarna: "0", [] och {} är alla truthy, även om de känns "tomma".
const name = input || "guest"; // ❌ if input is "" or 0, falls back to "guest"
const count = input ?? 0; // ✅ ?? only falls back on null/undefined
|| faller tillbaka för vilket som helst falsy värde, så ett giltigt 0 eller "" blir ersatt. Nullish coalescing-operatorn ?? faller tillbaka endast för null/undefined, vilket är vanligtvis det du faktiskt vill ha.
Att känna till den exakta falsy-mängden förhindrar subtila buggar — särskilt att skydda tal (if (count > 0) inte if (count)) och att välja ?? framför || för standardvärden.
Ett bibliotek med IT-intervjufrågor och detaljerade svar — från Junior till Senior.
Donera