Tech TutorBangla Web Documentation
Portfolio
HomeHTMLCSSTailwind CSSJavaScriptTypeScriptReactNext.jsNode.jsExpressSocket.IOExpoWordPressPostgreSQLPrismaPostgresNestJSMongoDBDockerTanStackTanStack TableRTK QueryGitGitHub
  • JavaScript Documentation48টি অধ্যায়
প্রযুক্তি নির্বাচন
HomeHTMLCSSTailwind CSSJavaScriptTypeScriptReactNext.jsNode.jsExpressSocket.IOExpoWordPressPostgreSQLPrismaPostgresNestJSMongoDBDockerTanStackTanStack TableRTK QueryGitGitHub
  • Introduction
  • JavaScript কী?
  • Syntax & Comments
  • Variables
  • Data Types: Basics
  • Data Types: Conversion
  • Data Types: Advanced
  • Strings
  • Numbers & Math
  • Date & Time
  • Operators
  • Conditions
  • Loops
  • Functions: Basics
  • Functions: Intermediate
  • Functions: Advanced
  • Scope & Hoisting
  • Closures & this
  • ES6+ Modern
  • Arrays: Basics
  • Arrays: Intermediate
  • Arrays: Advanced
  • Objects: Basics
  • Objects: Intermediate
  • Objects: Advanced
  • Class: Basics
  • Class: Intermediate
  • Class: Advanced
  • DOM: Basics
  • DOM: Intermediate
  • DOM: Advanced
  • Events: Basics
  • Events: Intermediate
  • Events: Advanced
  • Async JavaScript
  • Promise
  • Async / Await
  • Fetch API
  • JSON
  • Modules
  • Browser Storage
  • Event Loop Deep
  • Prototype Chain
  • Iterators & Generators
  • WeakMap, WeakSet, Proxy
  • Error Handling
  • Practice Problems
  • Mini Projects
  • Basics
  • Functions & Scope
  • Types & Syntax
  • Arrays & Objects
  • Advanced
  • Functional Programming
  • Objects & Symbols
  • Async Deep Dive
  • Modern JavaScript
  1. Docs
  2. JavaScript
  3. JavaScript Functions: Intermediate
JavaScriptIntermediate

JavaScript Functions: Intermediate

Arrow function, callback, higher-order function, anonymous function, IIFE, rest parameter — বাংলায়।

25টি অংশবাংলা ভাষায়

প্রথম ধাপে ফাংশনের ভিত্তি শেখা। এবার first-class ফাংশন ব্যবহারের কৌশল — arrow, callback, higher-order — যা রিয়েল অ্যাপের প্রতিদিনের হাতিয়ার।

Arrow function

// পূর্ণ arrow
const add = (a, b) => {
  return a + b;
};

// এক-expression সংক্ষিপ্ত (implicit return)
const multiply = (a, b) => a * b;

// এক parameter হলে parenthesis বাদ
const square = x => x * x;

console.log(add(3, 5));      // 8
console.log(multiply(4, 5)); // 20
console.log(square(9));      // 81

Arrow function সংক্ষিপ্ত এবং this-এর আচরণ আলাদা (মনে রাখবেন — advanced অধ্যায়ে in depth)। এক-expression return হলে {} আরের return বাদ যায়।

Callback function

function process(value, callback) {
  const doubled = value * 2;
  callback(doubled);
}

process(5, (result) => {
  console.log("ফলাফল:", result); // ফলাফল: 10
});

callback হলো অন্য ফাংশনে প্যারামিটার হিসেবে পাঠানো ফাংশন — যা পরে ডাকা হবে। অ্যারে মেথড (map, forEach), ইভেন্ট, async API — সব জায়গায় callback।

Higher-order function

// ফাংশন দিয়ে ফাংশন বানানোর এমন ফাংশন
function makeAdder(x) {
  return function (y) {
    return x + y;
  };
}

const add5 = makeAdder(5);
console.log(add5(3)); // 8
console.log(add5(10)); // 15

যে ফাংশন অন্যটিকে argument-এ নেয় কিংবা ফাংশন ফেরত দেয় — সেটি higher-order function। Array.map, setTimeout, arr.sort((a,b)=>...) — সব higher-order।

Anonymous function

// নামবিহীন ফাংশন — সরাসরি ব্যবহার
setTimeout(function () {
  console.log("২ সেকেন্ড পর");
}, 2000);

// arrow anonymous
const numbers = [1, 2, 3];
const doubled = numbers.map((n) => n * 2);
console.log(doubled); // [2, 4, 6]

anonymous মানে নামবিহীন — সাধারণত এক-জায়গায় ব্যবহারের হলে callback/method-এ দেওয়া হয়।

IIFE — সাথে সাথেই চালানো

(function () {
  const secret = "গোপন";
  console.log("এখনই চলে", secret);
})();

// arrow version
(() => {
  console.log("তাত্ক্ষণিক");
})();

// IIFE-র ভেতরের variable বাইরে অ্যাক্সেস করা যায় না
// console.log(secret); // ReferenceError

IIFE (Immediately Invoked Function Expression) — তৈরির সাথে সাথে নিজে চলে। বাইরে থেকে ভেতরের variable এড়াতে old-school pattern, এখন module/block scope-এর যুগে কম দরকার।

Rest parameter (...args)

function sumAll(...numbers) {
  return numbers.reduce((sum, n) => sum + n, 0);
}

console.log(sumAll(1, 2, 3));   // 6
console.log(sumAll(10, 20));    // 30
console.log(sumAll());          // 0

rest (`...`) — যত ইচ্ছা argument সব একটি array-তে জমা করে। নাম পরিচিত: function-এ parameter-এ ... = rest, অন্য জায়গায় array/object ফেলা = spread।

function greet(prefix, ...names) {
  return names.map(n => prefix + " " + n).join(", ");
}

console.log(greet("নমস্কার", "রহিম", "করিম", "সুমন")); // নমস্কার রহিম, নমস্কার করিম, নমস্কার সুমন

arguments (পুরনো)

function show() {
  console.log(arguments[0], arguments.length);
}

show("রহিম", "করিম"); // রহিম 2

// আধুনিক পছন্দ: rest parameter
function showRest(first, ...rest) {
  console.log(first, rest.length);
}
showRest("রহিম", "করিম"); // রহিম 1
কৌশলকাজ
arrow () => xসংক্ষিপ্ত + implicit return
callbackargument-এ পাঠানো ফাংশন
higher-orderফাংশন নেয়/ফেরত দেয়
anonymousনামহীন, এক-জায়গা
IIFEতৈরির মুহূর্তে চলে
rest ...সব argument এক array-তে
arrow-এ this

Arrow function-এর নিজের this নেই — lexical scope-এর this নেয়। object method-এ arrow ব্যবহার না করে regular function-ই ব্যবহার করুন।

practice

allEven(...nums) ফাংশন লিখুন যা সবগুলো number জোড় কি না বলবে। IIFE দিয়ে একবার console-এ চালান।

শেষ প্যারায় নিজে practice করুন — কোড কপি করে নিজের এডিটরে চালিয়ে দেখুন।
আগেরJavaScript Functions: Basics (ফাংশন)পরেরJavaScript Functions: Advanced
এই পেজে
Tech Tutor

বাংলায় ওয়েব ডেভেলপমেন্ট ডকুমেন্টেশন শিখুন — ধাপে ধাপে।

Homeসব ডকুমেন্টেশনQuick Startআমার নোটস

© 2026 Tech Tutor. বাংলায় শিখুন, বাংলায় গড়ুন।

mdanamolhasan1998@gmail.com