JavaScript-ലെ ഫങ്ക്ഷനുകളുടെ തരങ്ങൾ

JavaScript-ൽ ഫങ്ക്ഷനുകൾ അത്യന്താപേക്ഷിതമാണ്. അവ നിങ്ങളുടെ കോഡിനെ ക്രമീകരിക്കുന്നു. അവ ആവർത്തനം ഒഴിവാക്കുന്നു. അവ പ്രോഗ്രാമുകൾ എളുപ്പത്തിൽ പരിപാലിക്കാൻ സഹായിക്കുന്നു.

ഒരു ഫങ്ക്ഷനെ ഒരു മെഷീനായി സങ്കൽപ്പിക്കുക. നിങ്ങൾ ഇൻപുട്ട് നൽകുന്നു. അത് ഒരു ജോലി ചെയ്യുന്നു. അത് നിങ്ങൾക്ക് ഔട്ട്പുട്ട് നൽകുന്നു.

നിങ്ങൾ അറിഞ്ഞിരിക്കേണ്ട വിവിധതരം ഫങ്ക്ഷനുകൾ താഴെ പറയുന്നവയാണ്:

• Function Declaration ഇവ പേരുള്ള ഫങ്ക്ഷനുകളാണ്. ഇവ hoisting പിന്തുണയ്ക്കുന്നു. Example: function greet() { console.log("Hello World"); }

• Function Expression നിങ്ങൾ ഒരു ഫങ്ക്ഷനെ ഒരു വേരിയബിളിനുള്ളിൽ സൂക്ഷിക്കുന്നു. Example: const greet = function() { console.log("Hello"); };

• Anonymous Function പേര് ഇല്ലാത്ത ഫങ്ക്ഷൻ. ഇവ പലപ്പോഴും ഒരു തവണ മാത്രം പ്രവർത്തിക്കുകയും പിന്നീട് ഇല്ലാതാവുകയും ചെയ്യുന്നു.

• Arrow Function ES6-ൽ അവതരിപ്പിച്ച ലഘുവായ സിന്റാക്സ് (syntax). ഇവ React-ൽ സാധാരണയായി ഉപയോഗിക്കുന്നു. Example: const add = (a, b) => a + b;

• Parameters and Arguments പാരമീറ്ററുകൾ (Parameters) എന്നത് പ്ലേസ്‌ഹോൾഡറുകളാണ് (placeholders). ആർഗ്യുമെന്റുകൾ (Arguments) എന്നത് നിങ്ങൾ നൽകുന്ന യഥാർത്ഥ മൂല്യങ്ങളാണ്. Example: function greet(name) { // name is a parameter console.log(name); } greet("John"); // "John" is an argument

• Return Function ഒരു ഫങ്ക്ഷൻ അതിന്റെ റിസൾട്ട് വിളിച്ച ആൾക്ക് (caller) തിരികെ നൽകുന്നു. ഇത് ഫലങ്ങൾ വീണ്ടും ഉപയോഗിക്കാൻ നിങ്ങളെ സഹായിക്കുന്നു.

• Callback Function മറ്റൊരു ഫങ്ക്ഷനിലേക്ക് ഒരു ആർഗ്യുമെന്റായി നൽകുന്ന ഫങ്ക്ഷൻ.

• Higher Order Function മറ്റൊരു ഫങ്ക്ഷനെ സ്വീകരിക്കുകയോ അല്ലെങ്കിൽ തിരികെ നൽകുകയോ ചെയ്യുന്ന ഫങ്ക്ഷൻ.

• IIFE (Immediately Invoked Function Expression) നിങ്ങൾ നിർമ്മിച്ച ഉടനെ തന്നെ പ്രവർത്തിക്കുന്ന ഫങ്ക്ഷൻ.

• Constructor Function ഒരു ടെംപ്ലേറ്റിൽ നിന്ന് ഒരേസമയം നിരവധി ഒബ്‌ജക്റ്റുകൾ (objects) നിർമ്മിക്കാൻ ഉപയോഗിക്കുന്നു.

• Recursive Function സ്വയം വിളിക്കുന്ന (calls itself) ഒരു ഫങ്ക്ഷൻ.

• Generator Function yield കീവേഡ് ഉപയോഗിച്ച് ഓരോന്നായി മൂല്യങ്ങൾ നിർമ്മിക്കുന്നു.

• Async Function API കോളുകൾ പോലുള്ള ജോലികൾക്കായി ഉപയോഗിക്കുന്നു. കാത്തിരിപ്പ് സമയങ്ങൾ (waiting periods) കൈകാര്യം ചെയ്യാൻ await കീവേഡ് ഉപയോഗിക്കാൻ ഇത് അനുവദിക്കുന്നു.

• Nested Function മറ്റൊരു ഫങ്ക്ഷനുള്ളിൽ നിർവചിച്ചിരിക്കുന്ന ഫങ്ക്ഷൻ. ഉള്ളിലെ ഫങ്ക്ഷന് പുറത്തെ ഫങ്ക്ഷനിലെ വേരിയബിളുകൾ കാണാൻ കഴിയും.

• Pure Function ഒരേ ഇൻപുട്ടിന് എപ്പോഴും ഒരേ ഔട്ട്പുട്ട് നൽകുന്ന ഫങ്ക്ഷൻ. ഇത് പുറത്തുള്ള ഡാറ്റയിൽ മാറ്റം വരുത്തുന്നില്ല.

• Rest Parameter Function എത്ര ആർഗ്യുമെന്റുകളെയും സ്വീകരിക്കുന്നതിനായി മൂന്ന് ഡോട്ടുകൾ (...) ഉപയോഗിക്കുന്നു. ഇത് എത്ര സാധനങ്ങളും ഉൾക്കൊള്ളുന്ന ഒരു ഷോപ്പിംഗ് ബാസ്കറ്റ് പോലെ പ്രവർത്തിക്കുന്നു.

Source: https://www.geeksforgeeks.org/javascript/functions-in-javascript/ Optional learning community: https://dev.to/annapoo/types-of-functions-in-javascript-105