حالت آفلاین — محتوا از حافظهٔ کش نمایش داده می‌شود
آموزش جاوااسکریپت تکمیلی؛ توابع و پردازش داده

پیش‌بینی nullish coalescing در جاوااسکریپت؛ تفاوت ?? و ||

داده ناقص و اعتبارسنجی امن در جاوااسکریپت · 0٪

✍️ عملگر ?? وقتی مقدار سمت چپ null یا undefined باشه، سمت راست را انتخاب می‌کنه. به این دو حالت معمولاً nullish می‌گیم؛ یعنی واقعاً مقداری برای آن بخش نداریم. اما صفر، false و رشته خالی همچنان مقدارهای معتبرند و با ?? عوض نمی‌شن.

در مقابل، || همه مقدارهای falsy را به سمت راست می‌فرسته. falsy یعنی مقداری که در شرط مانند نادرست رفتار می‌کنه؛ صفر هم یکی از آن‌هاست. اگر موجودی انبار صفر باشه، تبدیلش به موجودی پیش‌فرض یک خطای جدی است. برای داده‌ای که صفر معنای واقعی دارد، ?? معمولاً انتخاب دقیق‌تریه.

در مثال پایین، تعداد موجود است و مقدارش صفره. برای هر عبارت جدا بپرس: آیا سمت چپ فقط null یا undefined است، یا به طور کلی در شرط نادرست حساب می‌شه؟ همین سؤال جواب را روشن می‌کنه. خطای رایج، حفظ کردن شکل کد بدون شناخت معنی پیش‌فرض است؛ اول باید تصمیم بگیریم کدام مقدارها واقعاً «گمشده» حساب می‌شن.

const quantity = 0;
console.log(quantity || 1);
console.log(quantity ?? 1);

فعالیت شما

دو خروجی استفاده از || و ?? روی quantity=0 را به ترتیب انتخاب کن.

مطالعهٔ این گام برای همه آزاد است

برای پاسخ‌دادن، بررسی پاسخ، ثبت پیشرفت و استفاده از دستیار باید شرایط شرکت در فعالیت‌ها را داشته باشید.

برای انجام فعالیت وارد شوید

فعالیت‌های این بخش به اشتراک فعال نیاز دارند. تهیهٔ اشتراک

برای انجام فعالیت‌ها ابتدا این دوره‌های پیش‌نیاز را تکمیل کنید:

گزینه‌های پیش‌بینی خروجی

  1. 0 سپس 0
  2. 1 سپس 1
  3. 1 سپس 0