আগের পর্বে আমরা Loop শিখেছি — একই কোড বারবার চালানো। আজকে শিখবো Function — একটা নাম দিয়ে কোডের একটা ব্লক জমিয়ে রাখা, যাতে সেটা যতবার দরকার ততবার পুনরায় ব্যবহার করা যায়, শুধু নাম ধরে ডাকলেই। এটা প্রোগ্রামিং-এর অন্যতম গুরুত্বপূর্ণ concept।
Function কেন দরকার
ধরো, তোমাকে ৫ জায়গায় দুইটা সংখ্যার যোগফল বের করতে হবে। Function ছাড়া প্রতিবার আলাদা করে যোগের কোড লিখতে হতো। Function দিয়ে একবার লিখলেই সেটা বারবার "কল" (call) করে ব্যবহার করা যায়:
function add(a, b) {
return a + b;
}
console.log(add(2, 3)); // 5
console.log(add(10, 20)); // 30
console.log(add(5, 5)); // 10
এখানে add ফাংশনটা একবার লেখা হয়েছে, কিন্তু তিনবার ভিন্ন ভিন্ন মান দিয়ে ব্যবহার হয়েছে।
Function-এর বেসিক গঠন
function functionName(parameter1, parameter2) {
// কোড এখানে
return কিছু_একটা;
}
| অংশ | কাজ |
|---|---|
function |
কীওয়ার্ড — বলে দেয় এটা একটা function |
functionName |
ফাংশনের নাম — এটা দিয়েই পরে ডাকা হবে |
parameter |
ফাংশনকে যেসব ইনপুট দেওয়া হয় (ঐচ্ছিক) |
return |
ফাংশন যে মান ফেরত দেবে (ঐচ্ছিক) |
Parameter ও Argument
এই দুইটা শব্দ গুলিয়ে ফেলা কমন — পার্থক্যটা সহজ:
- Parameter — ফাংশন ডিফাইন করার সময় যে নাম লেখা হয় (একটা "খালি জায়গা")
- Argument — ফাংশন কল করার সময় সেই জায়গায় যে আসল মান দেওয়া হয়
function greet(name) { // name — parameter
console.log(`স্বাগতম, ${name}!`);
}
greet("আরিফ"); // "আরিফ" — argument
return — মান ফেরত দেওয়া
return না থাকলে ফাংশন কিছু কাজ করতে পারে (যেমন console.log), কিন্তু কোনো মান ফেরত দেবে না:
function multiply(a, b) {
return a * b;
}
let result = multiply(4, 5); // result-এ মান জমা হবে
console.log(result); // 20
// return ছাড়া
function sayHi() {
console.log("হাই!");
}
let x = sayHi(); // "হাই!" প্রিন্ট হবে
console.log(x); // undefined — কিছু return করেনি
টিপস: return-এর পর কোনো কোড লিখলে সেটা কখনো চলবে না — return মানেই ফাংশন সাথে সাথে শেষ হয়ে যাওয়া। তাই return সাধারণত ফাংশনের একদম শেষে বসে।
Default Parameter
কোনো argument না দিলে parameter-এর একটা ডিফল্ট মান সেট করে রাখা যায়:
function greet(name = "বন্ধু") {
console.log(`স্বাগতম, ${name}!`);
}
greet("আরিফ"); // স্বাগতম, আরিফ!
greet(); // স্বাগতম, বন্ধু! (নাম দেওয়া হয়নি, ডিফল্ট ব্যবহার হলো)
Arrow Function — আধুনিক শর্টহ্যান্ড
একই function ছোট করে লেখার একটা আধুনিক সিনট্যাক্স আছে, একে বলে arrow function:
// সাধারণ function
function add(a, b) {
return a + b;
}
// arrow function — একই কাজ
const add2 = (a, b) => {
return a + b;
};
// আরও ছোট — এক লাইনের হলে {} ও return বাদ দেওয়া যায়
const add3 = (a, b) => a + b;
console.log(add3(3, 4)); // 7
এই সিরিজে এখন থেকে আমরা প্রধানত arrow function ব্যবহার করবো, কারণ আধুনিক JavaScript কোডে এটাই বেশি ব্যবহার হয় — বিশেষ করে ছোট, এক-লাইনের ফাংশনে।
একটা বাস্তব উদাহরণ
Loop, Condition ও Function একসাথে ব্যবহার করে একটা সংখ্যা জোড় না বিজোড় চেক করার ফাংশন বানানো যাক:
const isEven = (num) => {
return num % 2 === 0;
};
console.log(isEven(4)); // true
console.log(isEven(7)); // false
for (let i = 1; i <= 10; i++) {
if (isEven(i)) {
console.log(`${i} জোড় সংখ্যা`);
}
}
লক্ষ করো — একবার isEven ফাংশন বানিয়ে ফেললে, পুরো প্রোগ্রামের যেকোনো জায়গায় শুধু isEven(কোনো_সংখ্যা) লিখেই সেটা ব্যবহার করা যায় — কোড অনেক পরিষ্কার ও পুনর্ব্যবহারযোগ্য হয়ে যায়।
একটা সম্পূর্ণ উদাহরণ
<!DOCTYPE html>
<html lang="bn">
<head>
<meta charset="UTF-8">
<title>Function উদাহরণ</title>
</head>
<body>
<script>
const calculateTotal = (price, quantity) => {
return price * quantity;
};
const applyDiscount = (total, discountPercent = 0) => {
return total - (total * discountPercent) / 100;
};
const total = calculateTotal(500, 3);
const finalPrice = applyDiscount(total, 10);
console.log(`মূল দাম: ${total} টাকা`);
console.log(`ডিসকাউন্টের পর: ${finalPrice} টাকা`);
</script>
</body>
</html>
নিজে চেষ্টা করো
Exercise:
- দুইটা সংখ্যা নিয়ে তাদের গুণফল return করে এমন একটা function বানাও
- একটা function বানাও যেটা একটা নাম নেয় (default parameter সহ) এবং একটা স্বাগত বার্তা console-এ দেখায়
- উপরের দুইটা function-ই arrow function দিয়ে আবার লেখো
- একটা
isPositiveফাংশন বানাও যা কোনো সংখ্যা ধনাত্মক কিনা তাtrue/falseরিটার্ন করে
পরের পর্বে যা থাকছে
পর্ব ৭-এ আমরা শিখবো Array বেসিক — একাধিক মান একসাথে জমিয়ে রাখা, indexing, এবং push/pop-এর মতো কমন method, উদাহরণসহ।