# ഫൺ വിത്ത് ഫങ്ഷൻസ് ## നിർദേശം ഈ അസൈൻമെന്റിൽ, നിങ്ങൾ ജാവാസ്ക്രിപ്റ്റ് ഫങ്ഷനുകൾ, പാരാമീറ്ററുകൾ, ഡിഫോൾട്ട് മൂല്യങ്ങൾ, റിട്ടേൺ സ്റ്റേറ്റ്മെന്റുകൾ എന്നിവയെക്കുറിച്ച് പഠിച്ച് കൊണ്ടിരിക്കുന്ന ആശയങ്ങൾ ശക്തിപ്പെടുത്താൻ വ്യത്യസ്ത തരം ഫങ്ഷനുകൾ സൃഷ്ടിക്കാൻ പരിശീലനം നേടും. `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 // നിങ്ങളുടെ ഫങ്ഷനുകൾ ഇവിടെ പരിശോധിക്കുക 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. **ഇൻപുട്ട് വാലിഡേഷൻ ചേർക്കുക** നിങ്ങളുടെ ഫങ്ഷനുകൾ തെറ്റായ ഇൻപുട്ടുകൾ നന്നായി കൈകാര്യം ചെയ്യുന്നതായി ഉറപ്പാക്കാൻ --- > 💡 **ടിപ്പ്**: നിങ്ങളുടെ ബ്രൗസറിന്റെ ഡെവലപ്പർ കോൺസോൾ (F12) തുറന്ന് `console.log()` പ്രസ്താവനകളുടെ ഔട്ട്പുട്ട് കാണാൻ മറക്കരുത്! --- **അസ്വീകാര്യപ്പെടുത്തൽ**: ഈ രേഖ AI തർജ്ജമ സേവനം [Co-op Translator](https://github.com/Azure/co-op-translator) ഉപയോഗിച്ച് തർജ്ജമ ചെയ്തതാണ്. ഞങ്ങൾ കൃത്യതയ്ക്ക് ശ്രമിക്കുന്ന പോതു, സ്വാഭാവികമായും സ്വയം പ്രവർത്തിക്കുന്ന തർജ്ജമയിൽ പിശകുകൾ ഉണ്ടായിരിക്കാമെന്ന് ശ്രദ്ധിക്കുക. അതിനാൽ, യഥാർത്ഥ പത്രം അതിന്റെ മാതൃഭാഷയിൽ ഔദ്യോഗിക ഉറവിടമായി പരിഗണിക്കേണ്ടതാണ്. സുപ്രധാന വിവരങ്ങൾക്ക്, പ്രൊഫഷണൽ മാനവ തർജ്ജമ നിർദ്ദേശിക്കുന്നു. ഈ തർജ്ജമ ഉപയോഗത്തിൽ നിന്നുണ്ടാകുന്ന ഏതു ബോധവ്യത്യാസങ്ങൾക്കും അല്ലെങ്കിൽ വിവാചക പിശകുകൾക്കുമുള്ള ഉത്തരവാദിത്വം ഞങ്ങൾ ഏറ്റെടുക്കണമെന്നില്ല.