JavaScript এর হাতেখড়ি (পর্ব – ৬)

JavaScript Part 6

আগের পর্বে আমরা 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:

  1. দুইটা সংখ্যা নিয়ে তাদের গুণফল return করে এমন একটা function বানাও
  2. একটা function বানাও যেটা একটা নাম নেয় (default parameter সহ) এবং একটা স্বাগত বার্তা console-এ দেখায়
  3. উপরের দুইটা function-ই arrow function দিয়ে আবার লেখো
  4. একটা isPositive ফাংশন বানাও যা কোনো সংখ্যা ধনাত্মক কিনা তা true/false রিটার্ন করে

পরের পর্বে যা থাকছে

পর্ব ৭-এ আমরা শিখবো Array বেসিক — একাধিক মান একসাথে জমিয়ে রাখা, indexing, এবং push/pop-এর মতো কমন method, উদাহরণসহ।

একটি মন্তব্য পোস্ট করুন

নবীনতর পূর্বতন

যোগাযোগ ফর্ম