ایک boolean سیاق (ایک if، &&، ||، !) میں، ہر قدر کو truthy یا falsy سمجھا جاتا ہے۔ بالکل 8 falsy اقدار ہیں — باقی سب truthy ہے۔
Falsy اقدار: ، ، ، (BigInt صفر)، (خالی سٹرنگ)، ، ، ۔
ایک boolean سیاق (ایک 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)) اور ڈیفالٹس کے لیے ?? بمقابلہ || منتخب کرنا۔