Katika muktadha wa boolean (an if, &&, ||, !), kila thamani inachukuliwa kama truthy au falsy. Kuna 8 thamani za falsy haswa — kila kitu kingine ni truthy.
Thamani za falsy: , , , (BigInt zero), (string tupu), , , .
Katika muktadha wa boolean (an if, &&, ||, !), kila thamani inachukuliwa kama truthy au falsy. Kuna 8 thamani za falsy haswa — kila kitu kingine ni truthy.
Thamani za falsy: , , , (BigInt zero), (string tupu), , , .
false0-00n""nullundefinedNaNif ("") {} // 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!
Ajabisha: "0", [] na {} ni truthy sote, ingawa hupalikia "tupu".
const name = input || "guest"; // ❌ if input is "" or 0, falls back to "guest"
const count = input ?? 0; // ✅ ?? only falls back on null/undefined
|| inasogeza nyuma kwa thamani yoyote falsy, kwa hiyo 0 au "" halali inabadilishwa. Opereta ya nullish coalescing ?? inasogeza nyuma kwa tu null/undefined, ambayo ni kawaida unachohitaji.
Kujua seti halisi ya falsy huzuia matatizo ya bahati — hasa kulinganisha namba (if (count > 0) sio if (count)) na kuchagua ?? dhidi ya || kwa chaguomsingi.