# फंक्शन्ससोबत मजा ## सूचना या असाइनमेंटमध्ये, तुम्ही जावास्क्रिप्ट फंक्शन्स, पॅरामिटर्स, डिफॉल्ट व्हॅल्यूज आणि रिटर्न स्टेटमेंट्सबद्दल शिकलेल्या संकल्पनांना मजबूत करण्यासाठी विविध प्रकारचे फंक्शन्स तयार करण्याचा सराव कराल. `functions-practice.js` नावाचा जावास्क्रिप्ट फाइल तयार करा आणि खालील फंक्शन्स अंमलात आणा: ### भाग 1: बेसिक फंक्शन्स 1. **`sayHello` नावाचा फंक्शन तयार करा** ज्यामध्ये कोणतेही पॅरामिटर्स नसतील आणि फक्त "Hello!" कन्सोलवर लॉग करेल. 2. **`introduceYourself` नावाचा फंक्शन तयार करा** जो `name` पॅरामिटर घेईल आणि "Hi, my name is [name]" अशा प्रकारचा संदेश कन्सोलवर लॉग करेल. ### भाग 2: डिफॉल्ट पॅरामिटर्ससह फंक्शन्स 3. **`greetPerson` नावाचा फंक्शन तयार करा** जो दोन पॅरामिटर्स घेईल: `name` (आवश्यक) आणि `greeting` (ऐच्छिक, डिफॉल्ट "Hello"). हा फंक्शन कन्सोलवर "[greeting], [name]!" असा संदेश लॉग करेल. ### भाग 3: रिटर्न व्हॅल्यू देणारे फंक्शन्स 4. **`addNumbers` नावाचा फंक्शन तयार करा** जो दोन पॅरामिटर्स (`num1` आणि `num2`) घेईल आणि त्यांचा बेरीज परत करेल. 5. **`createFullName` नावाचा फंक्शन तयार करा** जो `firstName` आणि `lastName` पॅरामिटर्स घेईल आणि पूर्ण नाव एकाच स्ट्रिंगमध्ये परत करेल. ### भाग 4: सर्व गोष्टी एकत्र करा 6. **`calculateTip` नावाचा फंक्शन तयार करा** जो दोन पॅरामिटर्स घेईल: `billAmount` (आवश्यक) आणि `tipPercentage` (ऐच्छिक, डिफॉल्ट 15). हा फंक्शन टिपची रक्कम कॅल्क्युलेट करून परत करेल. ### भाग 5: तुमचे फंक्शन्स तपासा प्रत्येक फंक्शनची चाचणी घेण्यासाठी फंक्शन कॉल्स जोडा आणि `console.log()` वापरून परिणाम दाखवा. **उदाहरण चाचणी कॉल्स:** ```javascript // Test your functions here 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. **तुमच्या फंक्शन्सपैकी एकाचे अॅरो फंक्शन व्हर्जन तयार करा** 2. **अशा फंक्शन तयार करा जे दुसऱ्या फंक्शनला पॅरामिटर म्हणून स्वीकारते** (पाठातील `setTimeout` उदाहरणांसारखे) 3. **इनपुट व्हॅलिडेशन जोडा** जेणेकरून तुमचे फंक्शन्स अमान्य इनपुट्स योग्य प्रकारे हाताळतील --- > 💡 **टीप**: तुमच्या `console.log()` स्टेटमेंट्सचे आउटपुट पाहण्यासाठी तुमच्या ब्राउझरचा डेव्हलपर कन्सोल (F12) उघडायला विसरू नका! --- **अस्वीकरण**: हा दस्तऐवज AI भाषांतर सेवा [Co-op Translator](https://github.com/Azure/co-op-translator) वापरून भाषांतरित करण्यात आला आहे. आम्ही अचूकतेसाठी प्रयत्नशील असलो तरी, कृपया लक्षात ठेवा की स्वयंचलित भाषांतरे त्रुटी किंवा अचूकतेच्या अभावाने युक्त असू शकतात. मूळ भाषेतील दस्तऐवज हा अधिकृत स्रोत मानला जावा. महत्त्वाच्या माहितीसाठी व्यावसायिक मानवी भाषांतराची शिफारस केली जाते. या भाषांतराचा वापर करून उद्भवलेल्या कोणत्याही गैरसमज किंवा चुकीच्या अर्थासाठी आम्ही जबाबदार राहणार नाही.