Bir boolean bağlamında (bir if, &&, ||, !), her değer truthy veya falsy olarak ele alınır. Tam olarak 8 falsy değeri vardır — diğer her şey truthydir.
Falsy değerleri: , , , (BigInt sıfır), (boş string), , , .
Bir boolean bağlamında (bir if, &&, ||, !), her değer truthy veya falsy olarak ele alınır. Tam olarak 8 falsy değeri vardır — diğer her şey truthydir.
Falsy değerleri: , , , (BigInt sıfır), (boş string), , , .
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!
Sürprizler: "0", [], ve {} hepsi truthy'dir, hatta "boş" gibi görünseler bile.
const name = input || "guest"; // ❌ if input is "" or 0, falls back to "guest"
const count = input ?? 0; // ✅ ?? only falls back on null/undefined
|| herhangi bir falsy değer için yedek sağlar, bu nedenle geçerli bir 0 veya "" değiştirilir. Nullish coalescing operatörü ?? sadece null/undefined için yedek sağlar; bu genellikle aslında istediğiniz şeydir.
Tam falsy setini bilmek, ince hataları engeller — özellikle sayıları korurken (if (count > 0) değil if (count)) ve varsayılanlar için ?? ile ||'yi seçerken.