𝗧𝘆𝗽𝗲𝘀 𝗼𝗳 𝗝𝗮𝘃𝗮𝗦𝗰𝗿𝗶𝗽𝘁 𝗙𝘂𝗻𝗰𝘁𝗶𝗼𝗻𝘀

Functions என்பவை JavaScript-ன் அடிப்படை கட்டுமானக் கூறுகள் (building blocks). இவை குறியீட்டை (code) ஒழுங்கமைக்கவும், மீண்டும் மீண்டும் வருவதைத் தவிர்க்கவும் உதவுகின்றன.

ஒரு function-ஐ ஒரு இயந்திரமாக நினைத்துக் கொள்ளுங்கள். நீங்கள் உள்ளீட்டை (input) வழங்குகிறீர்கள், இயந்திரம் ஒரு பணியைச் செய்கிறது, மேலும் அது உங்களுக்கு ஒரு வெளியீட்டை (output) வழங்குகிறது.

நீங்கள் தெரிந்து கொள்ள வேண்டிய பல்வேறு வகையான functions இதோ:

• Function Declaration: நீங்கள் எங்கிருந்தும் அழைக்கக்கூடிய ஒரு பெயரிடப்பட்ட function. இது hoisting-ஐ ஆதரிக்கிறது.

• Function Expression: நீங்கள் ஒரு function-ஐ ஒரு variable-க்குள் சேமிக்கிறீர்கள். இது hoisting-ஐ ஆதரிக்காது.

• Anonymous Function: பெயர் இல்லாத ஒரு function. இவற்றை பெரும்பாலும் ஒருமுறை மட்டும் செய்யப்படும் பணிகளுக்காகப் பயன்படுத்துவீர்கள்.

• Arrow Function: functions-ஐ எழுதுவதற்கான ஒரு சுருக்கமான வழி. இவை React போன்ற நவீன frameworks-களில் பொதுவாகப் பயன்படுத்தப்படுகின்றன.

• Callback Function: மற்றொரு function-க்குள் ஒரு argument-ஆக நீங்கள் அனுப்பும் ஒரு function.

• Higher Order Function: மற்றொரு function-ஐப் பெறும் அல்லது திருப்பி அனுப்பும் (return) ஒரு function.

• IIFE: நீங்கள் உருவாக்கும் கணமே இயங்கும் ஒரு function.

• Constructor Function: புதிய objects-களை உருவாக்கப் பயன்படும் ஒரு function.

• Recursive Function: ஒரு சிக்கலைத் தீர்க்க தன்னைத்தானே அழைத்துக் கொள்ளும் ஒரு function.

• Generator Function: மதிப்புகளை ஒவ்வொன்றாக உருவாக்கும் ஒரு function.

• Async Function: ஒரு API-லிருந்து தரவைப் பெறுவது போன்ற நேரம் எடுக்கும் பணிகளுக்காகப் பயன்படுத்தப்படும் ஒரு function.

• Nested Function: மற்றொரு function-க்குள் இருக்கும் ஒரு function.

• Pure Function: ஒரே உள்ளீட்டிற்கு எப்போதும் ஒரே வெளியீட்டை வழங்கும் மற்றும் வெளிப்புறத் தரவை மாற்றாத ஒரு function.

• Rest Parameter: ஒரு function எத்தனை argument-களையும் ஏற்கும் வகையில் அமைப்பதற்கான ஒரு வழி.

இந்த முறைகளைப் புரிந்துகொள்வது உங்கள் குறியீட்டை (code) சுத்தமாகவும், எளிதில் கணிக்கக்கூடியதாகவும் மாற்றும்.

Source: https://www.geeksforgeeks.org/javascript/functions-in-javascript/

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