JavaScript ফাংশনের প্রকারভেদ
ফাংশন হলো JavaScript-এর মূল ভিত্তি। এগুলো আপনাকে কোড গুছিয়ে রাখতে এবং পুনরাবৃত্তি কমাতে সাহায্য করে।
একটি ফাংশনকে একটি মেশিনের মতো ভাবুন। আপনি ইনপুট প্রদান করেন, মেশিনটি একটি কাজ সম্পন্ন করে এবং আপনাকে একটি আউটপুট দেয়।
এখানে বিভিন্ন ধরণের ফাংশন রয়েছে যা আপনার জানা প্রয়োজন:
• Function Declaration: একটি নামযুক্ত ফাংশন যা আপনি যেকোনো জায়গা থেকে কল করতে পারেন। এটি hoisting সাপোর্ট করে।
• Function Expression: আপনি একটি ফাংশনকে একটি ভেরিয়েবলের মধ্যে সংরক্ষণ করেন। এটি hoisting সাপোর্ট করে না।
• Anonymous Function: নামহীন একটি ফাংশন। আপনি প্রায়ই এগুলো একবারের কাজের জন্য ব্যবহার করেন।
• Arrow Function: ফাংশন লেখার একটি সংক্ষিপ্ত পদ্ধতি। React-এর মতো আধুনিক ফ্রেমওয়ার্কগুলোতে এগুলো বহুল ব্যবহৃত।
• Callback Function: একটি ফাংশন যা আপনি অন্য একটি ফাংশনের আর্গুমেন্ট হিসেবে পাস করেন।
• Higher Order Function: এমন একটি ফাংশন যা অন্য একটি ফাংশনকে গ্রহণ করে বা রিটার্ন করে।
• IIFE: একটি ফাংশন যা তৈরি করার সাথে সাথেই রান করে।
• Constructor Function: নতুন অবজেক্ট তৈরি করতে ব্যবহৃত একটি ফাংশন।
• Recursive Function: একটি ফাংশন যা কোনো সমস্যা সমাধানের জন্য নিজেকে নিজে কল করে।
• Generator Function: একটি ফাংশন যা একে একে মান (values) তৈরি করে।
• Async Function: সময়সাপেক্ষ কাজের জন্য ব্যবহৃত একটি ফাংশন, যেমন কোনো API থেকে ডেটা ফেচ করা।
• Nested Function: একটি ফাংশনের ভেতরে থাকা অন্য একটি ফাংশন।
• Pure Function: এমন একটি ফাংশন যা একই ইনপুটের জন্য সবসময় একই আউটপুট দেয় এবং বাইরের কোনো ডেটা পরিবর্তন করে না।
• Rest Parameter: একটি ফাংশনকে যেকোনো সংখ্যক আর্গুমেন্ট গ্রহণ করতে দেওয়ার পদ্ধতি।
এই প্যাটার্নগুলো বুঝতে পারলে আপনার কোড আরও পরিচ্ছন্ন এবং অনুমানযোগ্য (predictable) হবে।
Source: https://www.geeksforgeeks.org/javascript/functions-in-javascript/
Optional learning community: https://dev.to/annapoo/types-of-functions-in-javascript-105