در حال بارگذاری...

مقدارهای truthy و falsy

با String()، Number() و Boolean() بلد شدید جورِ مقدار را عوض کنید. مهارت بعدی این است که بفهمید همان مقدارها داخل تصمیم چطور رفتار می‌کنند — حتی قبل از فصل کامل if / else. مقدارهایی که مثل «نه» عمل می‌کنند falsy نام دارند. تقریباً هر چیز دیگر truthy است. یک‌بار فهرست کوتاه falsy را حفظ کنید؛ بعداً کلی سردرگمی کم می‌شود.

truthy و falsy در JavaScript یعنی چه؟

falsy یعنی در شرط، موتور با آن مقدار مثل false رفتار می‌کند. truthy یعنی مثل true. نوع دادهٔ تازه نیست — همان عدد و رشته‌ای که بلدید. می‌توانید با Boolean(value) پیش‌نمایش بگیرید، یا بنویسید if (value) و بگذارید همان قانون اعمال شود. برای شروع فقط چک‌لیست falsy لازم است؛ بقیه معمولاً truthy هستند.

چک‌لیست falsy

📊 مقدارهای falsy که باید بلد باشید

مقدار چرا حس «خالی / نه» می‌دهد نکته
false نهِ بولی کلمهٔ کلیدی
0 صفر عددی -0 هم همین‌طور
"" رشتهٔ خالی طول صفر
null خالیِ عمدی از جلسهٔ قبل
undefined مقدار نیست از جلسهٔ قبل
NaN عددِ شکست‌خورده typeof هنوز "number"

همین فهرست برای شروع کافی است. falsy را حفظ کنید، نه یک کاتالوگ بی‌پایان از truthy. اگر مقدار توی این لیست نبود، تا جلسهٔ بعد truthy فرض کنید مگر خلافش را ببینید.

falsy را با Boolean() ببینید

Boolean(...) پیش‌نمایش روشنی است. هر عضو چک‌لیست می‌شود false.

نقشهٔ falsy با Boolean()

javascript
console.log(Boolean(false));
console.log(Boolean(0));
console.log(Boolean(""));
console.log(Boolean(null));
console.log(Boolean(undefined));
console.log(Boolean(NaN));

برای تازه‌کار، پیش‌فرض truthy است

رشتهٔ غیرخالی، بیشتر عددها و خود true truthy هستند. غافلگیری‌های اول معمولاً رشته‌هایی‌اند که ظاهرشان «نه» است ولی هنوز نویسه دارند.

نمونه‌های truthy برای شروع

javascript
console.log(Boolean(1));
console.log(Boolean(-3));
console.log(Boolean("hi"));
console.log(Boolean("0"));
console.log(Boolean("false"));
console.log(Boolean(" "));

"0" و "false" چون متن غیرخالی‌اند، truthy هستند. یک فاصلهٔ " " هم truthy است — بین رشته‌های معمولی فقط "" (طول صفر) falsy است.

if بدون صدا زدن Boolean()

یک if (value) ساده همان قانون را به کار می‌برد. لازم نیست بنویسید if (Boolean(value)). سبک شاخه‌بندی کامل بعداً می‌آید؛ اینجا فقط دروازهٔ بله/خیر را ببینید.

if از truthy و falsy استفاده می‌کند

javascript
let name = "Ada";
if (name) {
console.log("name is truthy");
}

let empty = "";
if (empty) {
console.log("will not run");
} else {
console.log("empty string is falsy");
}

دام رشته: "0" و "false"

فرم‌ها و APIها اغلب متن می‌فرستند. رشتهٔ "0" همان عدد 0 نیست. رشتهٔ "false" همان بولی false نیست. هر دو truthy هستند.

دام‌های رشته که ظاهر falsy دارند

javascript
console.log(Boolean("0"));
console.log(Boolean(0));
console.log(Boolean("false"));
console.log(Boolean(false));
console.log("0" === 0);

رشتهٔ خالی در برابر یک فاصله

بین رشته‌های معمولی فقط "" با طول صفر falsy است. یک فاصله هنوز محتوا دارد.

رشتهٔ خالی در برابر یک فاصله

javascript
console.log(Boolean(""));
console.log(Boolean(" "));
console.log("".length);
console.log(" ".length);

پیام صفحه را با یک مقدار کنترل کنید

با یک مقدار تصمیم بگیرید بازدیدکننده چه ببیند. مقدار را عوض کنید و صفحه را تازه کنید.

دروازهٔ صفحه با truthy / falsy

html
<!DOCTYPE html>
<html>
<head>
<title>Truthy falsy — page gate</title>
</head>
<body>
<p id="msg">…</p>
<script>
let user = "Sam";
let box = document.getElementById("msg");
if (user) {
box.textContent = "Hello, " + user;
} else {
box.textContent = "Please sign in";
}
</script>
</body>
</html>

user را "" یا null کنید، تازه کنید؛ پیام به خط ورود عوض می‌شود. همان قانون falsy — این‌بار روی صفحه.

خودتان امتحان کنید

  1. برای هر عضو چک‌لیست falsy، Boolean را لاگ کنید.
  2. Boolean("0") و Boolean(0) را کنار هم لاگ کنید.
  3. Boolean(" ") و Boolean("") را لاگ کنید — فاصله در برابر خالی.
  4. یک if (score) کوچک با score = 0 بنویسید، بعد با score = 5.
  5. در دمو HTML مقدار user را "" کنید، تازه کنید و پیام جدید را بخوانید.
  6. user را "0" کنید؛ ببینید سلام هنوز اجرا می‌شود (رشتهٔ truthy).

اشتباه‌های رایج

  • حساب کردن "false" یا "0" به‌عنوان falsy — هر دو رشتهٔ غیرخالی‌اند
  • فکر کردن که همیشه باید Boolean() بپیچید — خودِ if (value) تبدیل می‌کند
  • حفظ کردن همهٔ truthyها به‌جای فهرست کوتاه falsy
  • قاطی کردن عدد 0 (falsy) با رشتهٔ "0" (truthy)
  • جا انداختن null، undefined یا NaN از چک‌لیست

خلاصه

  • falsy: در شرط مثل false عمل می‌کند — فهرست کوتاه را بلد باشید
  • truthy: مثل true — بیشتر مقدارهای روزمره
  • پیش‌نمایش با Boolean(value) یا مستقیم if (value)
  • دام رشته: "0" و "false" truthy هستند
  • بعدی: عملگرها — نمادهایی که حساب و مقایسه می‌کنند

🧠 دانش خود را بیازمایید

آماده شروع

دانش خود را بیازمایید

خود را با این آزمون تعاملی به چالش بکشید و ببینید موضوع را چقدر خوب درک کرده‌اید

❓
8
سوالات
🎯
70%
برای قبولی
♾️
∞
زمان
🔄
∞
تلاش‌ها

📝 دستورالعمل‌ها

  • هر سوال را با دقت بخوانید
  • بهترین پاسخ را برای هر سوال انتخاب کنید
  • می‌توانید آزمون را هر چند بار که می‌خواهید تکرار کنید
  • پیشرفت شما در بالا نمایش داده می‌شود