You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Web-Dev-For-Beginners/translations/fa/2-js-basics/2-functions-methods/assignment.md

6.5 KiB

سرگرمی با توابع

دستورالعمل‌ها

در این تمرین، شما تمرین ایجاد انواع مختلف توابع را انجام می‌دهید تا مفاهیمی که درباره توابع جاوااسکریپت، پارامترها، مقادیر پیش‌فرض و عبارات بازگشتی یاد گرفته‌اید را تقویت کنید.

یک فایل جاوااسکریپت به نام functions-practice.js ایجاد کنید و توابع زیر را پیاده‌سازی کنید:

بخش 1: توابع پایه

  1. یک تابع به نام sayHello ایجاد کنید که هیچ پارامتری نمی‌گیرد و فقط "Hello!" را در کنسول چاپ می‌کند.

  2. یک تابع به نام introduceYourself ایجاد کنید که یک پارامتر name می‌گیرد و پیامی مانند "Hi, my name is [name]" را در کنسول چاپ می‌کند.

بخش 2: توابع با پارامترهای پیش‌فرض

  1. یک تابع به نام greetPerson ایجاد کنید که دو پارامتر می‌گیرد: name (الزامی) و greeting (اختیاری، پیش‌فرض "Hello"). این تابع باید پیامی مانند "[greeting], [name]!" را در کنسول چاپ کند.

بخش 3: توابعی که مقدار بازمی‌گردانند

  1. یک تابع به نام addNumbers ایجاد کنید که دو پارامتر (num1 و num2) می‌گیرد و حاصل جمع آن‌ها را بازمی‌گرداند.

  2. یک تابع به نام createFullName ایجاد کنید که پارامترهای firstName و lastName را می‌گیرد و نام کامل را به صورت یک رشته بازمی‌گرداند.

بخش 4: ترکیب همه با هم

  1. یک تابع به نام calculateTip ایجاد کنید که دو پارامتر می‌گیرد: billAmount (الزامی) و tipPercentage (اختیاری، پیش‌فرض 15). این تابع باید مبلغ انعام را محاسبه و بازگرداند.

بخش 5: تست توابع خود

برای هر تابع خود فراخوانی‌هایی را اضافه کنید و نتایج را با استفاده از console.log() نمایش دهید.

نمونه فراخوانی‌های تستی:

// اینجا توابع خود را آزمایش کنید
sayHello();
introduceYourself("Sarah");
greetPerson("Alex");
greetPerson("Maria", "Hi");

const sum = addNumbers(5, 3);
console.log(`The sum is: ${sum}`);

const fullName = createFullName("John", "Doe");
console.log(`Full name: ${fullName}`);

const tip = calculateTip(50);
console.log(`Tip for $50 bill: $${tip}`);

معیار ارزیابی

معیار نمونه عالی کافی نیاز به بهبود
ایجاد تابع هر 6 تابع به درستی با نحو و نام‌گذاری مناسب پیاده‌سازی شده‌اند 4-5 تابع به درستی با اشکالات کوچک نحو پیاده‌سازی شده‌اند 3 یا کمتر تابع پیاده‌سازی شده یا اشکالات بزرگ نحو
پارامترها و مقادیر پیش‌فرض پارامترهای الزامی، اختیاری و مقادیر پیش‌فرض به درستی استفاده شده‌اند پارامترها به درستی استفاده شده‌اند اما ممکن است مشکلاتی با مقادیر پیش‌فرض وجود داشته باشد پیاده‌سازی پارامترها نادرست یا ناقص است
مقادیر بازگشتی توابعی که باید مقدار بازگردانند، به درستی این کار را می‌کنند و توابعی که نباید مقدار بازگردانند، فقط عمل انجام می‌دهند بیشتر مقادیر بازگشتی صحیح‌اند با مشکلات کوچک مشکلات قابل توجه در عبارات بازگشتی
کیفیت کد کد تمیز و سازمان‌یافته با نام‌های متغیر معنی‌دار و تورفتگی مناسب کد کار می‌کند اما می‌توانست تمیزتر یا بهتر سازماندهی شود کد دشوار برای خواندن یا ساختار ضعیف دارد
تست کردن همه توابع با فراخوانی‌های مناسب تست شده و نتایج به وضوح نمایش داده شده‌اند بیشتر توابع به طور کافی تست شده‌اند تست توابع محدود یا نادرست است

چالش‌های اضافی (اختیاری)

اگر می‌خواهید خود را بیشتر به چالش بکشید:

  1. نسخه تابع فلش (arrow function) یکی از توابع خود را ایجاد کنید
  2. تابعی ایجاد کنید که یک تابع دیگر را به عنوان پارامتر بپذیرد (مانند مثال‌های setTimeout در درس)
  3. اعتبارسنجی ورودی را اضافه کنید تا اطمینان حاصل شود توابع شما ورودی‌های نامعتبر را به‌خوبی مدیریت می‌کنند

💡 نکته: فراموش نکنید برای دیدن خروجی عبارات console.log() مرورگر خود را در حالت توسعه‌دهنده (F12) باز کنید!


سلب مسئولیت:
این سند با استفاده از سرویس ترجمه ماشینی Co-op Translator ترجمه شده است. در حالی که ما برای دقت تلاش می‌کنیم، لطفاً توجه داشته باشید که ترجمه‌های خودکار ممکن است حاوی اشتباهات یا نواقصی باشند. سند اصلی به زبان بومی خود باید به عنوان منبع معتبر در نظر گرفته شود. برای اطلاعات حساس، ترجمه حرفه‌ای انسانی توصیه می‌شود. ما مسئول هیچ گونه سوء تفاهم یا تفسیر نادرستی که از استفاده این ترجمه ناشی شود، نمی‌باشیم.