V boolovem kontekstu (pogoj if, &&, ||, !) se vsaka vrednost obravnava kot truthy ali falsy. Obstaja natanko — vse ostale so truthy.
V boolovem kontekstu (pogoj if, &&, ||, !) se vsaka vrednost obravnava kot truthy ali falsy. Obstaja natanko — vse ostale so truthy.
Falsy vrednosti: false, 0, -0, 0n (BigInt nič), "" (prazen 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!
Presenetljivo: "0", [] in {} so vsi truthy, čeprav se zdijo "prazni".
const name = input || "guest"; // ❌ if input is "" or 0, falls back to "guest"
const count = input ?? 0; // ✅ ?? only falls back on null/undefined
|| se vrne za katero koli falsy vrednost, zato se veljavni 0 ali "" nadomestita. Operator nullish coalescing ?? se vrne samo za null/undefined, kar je običajno res tisto, kar potrebuješ.
Znanje natančnega niza falsy vrednosti preprečuje subtilne napake — posebej varovanje števil (if (count > 0) ne if (count)) in izbira ?? nasproti || za privzete vrednosti.
Knjižnica IT vprašanj za razgovore s podrobnimi odgovori — od začetnika do izkušenega.
Doniraj