બુલીયન કન્ટેક્સ્ટમાં (if, &&, ||, !), દરેક વેલ્યુને truthy અથવા falsy તરીકે ગણવામાં આવે છે. બરાબર 8 falsy વેલ્યુ છે — બાકી બધું truthy છે.
Falsy વેલ્યુ: , , , (BigInt શૂન્ય), (ખાલી સ્ટ્રિંગ), , , ।
બુલીયન કન્ટેક્સ્ટમાં (if, &&, ||, !), દરેક વેલ્યુને truthy અથવા falsy તરીકે ગણવામાં આવે છે. બરાબર 8 falsy વેલ્યુ છે — બાકી બધું truthy છે.
Falsy વેલ્યુ: , , , (BigInt શૂન્ય), (ખાલી સ્ટ્રિંગ), , , ।
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!
આશ્ચર્ય: "0", [], અને {} બધી truthy છે, ભલે તે "ખાલી" લાગે।
const name = input || "guest"; // ❌ if input is "" or 0, falls back to "guest"
const count = input ?? 0; // ✅ ?? only falls back on null/undefined
|| કોઈપણ falsy વેલ્યુ માટે ફોલબેક કરે છે, તેથી વૈધ 0 અથવા "" બદલાય છે. nullish coalescing ઓપરેટર ?? માત્ર null/undefined માટે ફોલબેક કરે છે, જે સામાન્ય રીતે તમે ખરેખર ઈચ્છો છો.
ચોક્કસ falsy સેટ જાણવું સ્પષ્ટ બગો રોકે છે — ખાસ કરીને સંખ્યાઓ સુરક્ષિત કરવી (if (count > 0) બદલે if (count)) અને ડિફોલ્ટ માટે ?? વિરુદ્ધ || પસંદ કરવી।