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

تمرین scope در جاوااسکریپت؛ محاسبه مبلغ با مالیات

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

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

مثلاً برای افزودن هزینه بسته‌بندی، می‌تونیم let result = price داشته باشیم و فقط وقتی بسته‌بندی لازم است، بنویسیم result = price + 10. اگر در همان شرط let result تعریف کنیم، خروجی تابع همچنان قیمت اولیه می‌مونه. این خطا معمولاً خطای اجرایی نمی‌ده و به همین دلیل باید با مثال دارای هزینه بررسی بشه.

در این تمرین، نرخ مالیات به شکل اعشاری داده می‌شه؛ نرخ 0.1 یعنی ده درصد. نرخ صفر هم معتبره و مبلغ را تغییر نمی‌ده. ورودی‌ها از قبل معتبرند و گرد کردن لازم نیست. برای بررسی دستی، مالیات را جدا حساب کن و بعد با مبلغ جمع کن؛ ضرب صرف در نرخ، فقط خود مالیات را می‌ده.

فعالیت شما

totalWithTax(amount, rate) را بنویس. amount و rate عدد متناهی نامنفی‌اند. amount + amount * rate را بدون گرد کردن برگردان؛ (100,0.1) برابر 110 است، نرخ صفر مبلغ را نگه می‌دارد و مبلغ صفر خروجی صفر دارد.

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

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

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

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

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

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

function totalWithTax(amount, rate) {
  // TODO: نتیجه نهایی را در دامنه درست محاسبه کن.
}