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

پیش‌بینی shadowing در جاوااسکریپت؛ دو متغیر هم‌نام

دامنه متغیرها در جاوااسکریپت و خطاهای scope · 0٪

✍️ وقتی داخل یک بلوک، نامی را دوباره با let یا const تعریف می‌کنی، یک متغیر مستقل ساخته می‌شه. این کار shadowing یا پوشاندن نام بیرونی است. مقدار بیرونی پاک نمی‌شه؛ فقط تا وقتی توی آن بلوک هستیم، نام یکسان به متغیر نزدیک‌تر اشاره می‌کنه. بعد از خروج، دوباره نام بیرونی دیده می‌شه.

مثلاً یک فروشگاه می‌تونه عنوان عمومی «فروشگاه» داشته باشه و داخل بخش پیشنهاد ویژه، عنوان محلی «حراج» تعریف کنه. تغییر عنوان محلی قرار نیست عنوان کل صفحه را تغییر بده. برای پیش‌بینی کد پایین، اول برای هر تعریف یک جای جدا روی کاغذ در نظر بگیر؛ بعد هر دستور چاپ را به نزدیک‌ترین تعریف وصل کن.

خطای رایج اینه که let score = 9 را همان انتساب score = 9 حساب کنیم. اولی متغیر تازه می‌سازه، دومی متغیر موجود را تغییر می‌ده. از بالا به پایین اجرا کن و فقط دو خروجی چاپ‌شده را در نظر بگیر؛ آکولاد خودش چیزی چاپ نمی‌کنه.

let score = 4;
{
  let score = 9;
  score += 1;
  console.log(score);
}
console.log(score);

فعالیت شما

دو خط خروجی کد را به ترتیب انتخاب کن.

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

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

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

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

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

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

  1. 10 سپس 4
  2. 10 سپس 10
  3. 9 سپس 4