✍️ در destructuring شیء، نام ویژگی تعیین میکنه کدام مقدار خوانده بشه؛ ترتیب نوشتن نامها مهم نیست. میتونیم برای ویژگی غایب، مقدار پیشفرض بذاریم یا نام محلی متفاوت انتخاب کنیم. این روش در تابعهایی که تنظیمات میگیرند، تکرار خواندن ویژگیها را کم میکنه و ورودی مورد نیاز را روشنتر نشان میده.
مثلاً const {title = 'بدون عنوان'} = {} عنوان پیشفرض میده. اما اگر title برابر رشته خالی یا null باشه، همان مقدار باقی میمونه. پیشفرض destructuring فقط برای undefined است، نه هر مقداری که در شرط نادرست حساب میشه. همین قانون درباره صفر هم برقرار است.
در کد پایین، stock واقعاً وجود دارد و مقدارش صفر است. در مقابل، unit اصلاً وجود ندارد. قبل از انتخاب پاسخ، این دو حالت را از هم جدا کن. خطای رایج اینه که صفر را نبودن داده بدانیم و به صورت خودکار مقدار پیشفرض را جایگزین کنیم. موجودی صفر یعنی کالا تمام شده؛ این اطلاعات نباید با یک پیشفرض مثبت پاک بشه.
const product = { stock: 0 };
const { stock = 10, unit = 'عدد' } = product;
console.log(stock, unit);
فعالیت شما
مقدار stock و unit را بعد از destructuring انتخاب کن.