Într-un context boolean (un if, &&, ||, !), fiecare valoare este tratată ca fiind truthy sau falsy. Există exact — totul celălalt este truthy.
Într-un context boolean (un if, &&, ||, !), fiecare valoare este tratată ca fiind truthy sau falsy. Există exact — totul celălalt este truthy.
Valorile falsy: false, 0, -0, 0n (BigInt zero), "" (string gol), 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!
Surprizele: "0", [] și {} sunt toate truthy, deși par "goale".
const name = input || "guest"; // ❌ if input is "" or 0, falls back to "guest"
const count = input ?? 0; // ✅ ?? only falls back on null/undefined
|| revine pentru orice valoare falsy, deci un 0 sau "" valid este înlocuit. Operatorul nullish coalescing ?? revine doar pentru null/undefined, ceea ce este de obicei ceea ce chiar dorești.
Cunoașterea setului exact de falsy previne bug-uri subtile — în special protejarea numerelor (if (count > 0) nu if (count)) și alegerea ?? versus || pentru valori implicite.
O bibliotecă de întrebări de interviu IT cu răspunsuri detaliate — de la Junior la Senior.
Donează