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

صفر در برابر داده غایب در جاوااسکریپت؛ تعداد پیش‌فرض

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

✍️ حالا می‌خوایم خواندن امن و پیش‌فرض دقیق را کنار هم قرار بدیم. ممکنه خود سفارش وجود نداشته باشه، یا سفارش وجود داشته باشه ولی ویژگی quantity نداشته باشه. در هر دو حالت می‌تونیم پیش‌فرض یک را انتخاب کنیم. ولی وقتی quantity صفر است، باید صفر را برگردونیم؛ صفر با نبودن داده فرق دارد.

مثال مشابه، سطح صدای تنظیمات است: صفر یعنی بی‌صدا، نه «تنظیم نشده». اگر برای پیش‌فرض از || استفاده کنیم، بی‌صدا بودن کاربر را ناخواسته نادیده می‌گیریم. ترکیب settings?.volume ?? 50 این دو تصمیم را جدا نگه می‌داره: اول مسیر امن، بعد انتخاب پیش‌فرض فقط برای مقدار غایب.

در تمرین، quantity اگر وجود داشته باشه فقط عدد نامنفی یا null است؛ پس نیازی به تبدیل رشته یا بررسی عدد منفی نداریم. روی قرارداد همین ورودی تمرکز کن. خطای رایج، اضافه کردن شرط if (!quantity) است که دوباره صفر را با نبودن داده یکی می‌کنه. با چند ورودی مرزی، از جمله null و شیء خالی، تفاوت را امتحان کن.

فعالیت شما

readQuantity(order) را کامل کن. order یا null است یا شیئی که quantity آن غایب، null یا عدد متناهی نامنفی است. quantity واقعی را نگه دار و فقط برای غایب/null مقدار 1 بده؛ {quantity:0} => 0، {} => 1 و null => 1.

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

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

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

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

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

کد اولیهٔ فعالیت

function readQuantity(order) {
  // TODO: خواندن امن و پیش‌فرض فقط برای مقدار غایب.
}