6.5 KiB
سرگرمی با توابع
دستورالعملها
در این تمرین، شما تمرین ایجاد انواع مختلف توابع را انجام میدهید تا مفاهیمی که درباره توابع جاوااسکریپت، پارامترها، مقادیر پیشفرض و عبارات بازگشتی یاد گرفتهاید را تقویت کنید.
یک فایل جاوااسکریپت به نام functions-practice.js ایجاد کنید و توابع زیر را پیادهسازی کنید:
بخش 1: توابع پایه
-
یک تابع به نام
sayHelloایجاد کنید که هیچ پارامتری نمیگیرد و فقط "Hello!" را در کنسول چاپ میکند. -
یک تابع به نام
introduceYourselfایجاد کنید که یک پارامترnameمیگیرد و پیامی مانند "Hi, my name is [name]" را در کنسول چاپ میکند.
بخش 2: توابع با پارامترهای پیشفرض
- یک تابع به نام
greetPersonایجاد کنید که دو پارامتر میگیرد:name(الزامی) وgreeting(اختیاری، پیشفرض "Hello"). این تابع باید پیامی مانند "[greeting], [name]!" را در کنسول چاپ کند.
بخش 3: توابعی که مقدار بازمیگردانند
-
یک تابع به نام
addNumbersایجاد کنید که دو پارامتر (num1وnum2) میگیرد و حاصل جمع آنها را بازمیگرداند. -
یک تابع به نام
createFullNameایجاد کنید که پارامترهایfirstNameوlastNameرا میگیرد و نام کامل را به صورت یک رشته بازمیگرداند.
بخش 4: ترکیب همه با هم
- یک تابع به نام
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 یا کمتر تابع پیادهسازی شده یا اشکالات بزرگ نحو |
| پارامترها و مقادیر پیشفرض | پارامترهای الزامی، اختیاری و مقادیر پیشفرض به درستی استفاده شدهاند | پارامترها به درستی استفاده شدهاند اما ممکن است مشکلاتی با مقادیر پیشفرض وجود داشته باشد | پیادهسازی پارامترها نادرست یا ناقص است |
| مقادیر بازگشتی | توابعی که باید مقدار بازگردانند، به درستی این کار را میکنند و توابعی که نباید مقدار بازگردانند، فقط عمل انجام میدهند | بیشتر مقادیر بازگشتی صحیحاند با مشکلات کوچک | مشکلات قابل توجه در عبارات بازگشتی |
| کیفیت کد | کد تمیز و سازمانیافته با نامهای متغیر معنیدار و تورفتگی مناسب | کد کار میکند اما میتوانست تمیزتر یا بهتر سازماندهی شود | کد دشوار برای خواندن یا ساختار ضعیف دارد |
| تست کردن | همه توابع با فراخوانیهای مناسب تست شده و نتایج به وضوح نمایش داده شدهاند | بیشتر توابع به طور کافی تست شدهاند | تست توابع محدود یا نادرست است |
چالشهای اضافی (اختیاری)
اگر میخواهید خود را بیشتر به چالش بکشید:
- نسخه تابع فلش (arrow function) یکی از توابع خود را ایجاد کنید
- تابعی ایجاد کنید که یک تابع دیگر را به عنوان پارامتر بپذیرد (مانند مثالهای
setTimeoutدر درس) - اعتبارسنجی ورودی را اضافه کنید تا اطمینان حاصل شود توابع شما ورودیهای نامعتبر را بهخوبی مدیریت میکنند
💡 نکته: فراموش نکنید برای دیدن خروجی عبارات
console.log()مرورگر خود را در حالت توسعهدهنده (F12) باز کنید!
سلب مسئولیت:
این سند با استفاده از سرویس ترجمه ماشینی Co-op Translator ترجمه شده است. در حالی که ما برای دقت تلاش میکنیم، لطفاً توجه داشته باشید که ترجمههای خودکار ممکن است حاوی اشتباهات یا نواقصی باشند. سند اصلی به زبان بومی خود باید به عنوان منبع معتبر در نظر گرفته شود. برای اطلاعات حساس، ترجمه حرفهای انسانی توصیه میشود. ما مسئول هیچ گونه سوء تفاهم یا تفسیر نادرستی که از استفاده این ترجمه ناشی شود، نمیباشیم.