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. প্রশ্ন/উত্তর
  4. Functions & Scope
  5. Q11. What is the difference between function declaration and function expression?
JavaScriptFunctions & Scope

Q11. What is the difference between function declaration and function expression?

দুই ধরনের ফাংশন লেখার তুলনা, hoisting ও naming নিয়ে পার্থক্য।

দুটোই ফাংশন তৈরি করে, কিন্তু লেখার ধরন আলাদা। Function declaration-এ ফাংশনের নাম আগে বসে, আর function expression-এ ফাংশনটি একটি expression-এর অংশ হিসেবে বসে — সাধারণত কোনো ভেরিয়েবলে রাখা হয়।

দুই ধরনের লেখাjavascript
javascript
// function declaration
function add(a, b) {
  return a + b;
}

// function expression
const multiply = function (a, b) {
  return a * b;
};

// নামসহ function expression (recursion ও debugging-এ কাজে লাগে)
const factorial = function fact(n) {
  return n <= 1 ? 1 : n * fact(n - 1);
};

সবচেয়ে গুরুত্বপূর্ণ পার্থক্য হলো hoisting। Declaration পুরো কোড চালানোর আগে উপরে উঠে যায়, তাই ঘোষণার নিচে ব্যবহার করলেও কাজ করে। Expression একটি সাধারণ মানের সমান, তাই সে ঘোষিত না হওয়া পর্যন্ত ব্যবহার করা যায় না।

hoisting-এর পার্থক্যjavascript
javascript
sayHi(); // ✅ কাজ করে — উপরে উঠে গেছে
function sayHi() {
  console.log("Hi!");
}

// greet(); // ❌ ReferenceError
greet(); // এখন চলে
const greet = function () {
  console.log("Hello!");
};
greet();
বিষয়Function declarationFunction expression
লেখার ধরনfunction name() {}const f = function () {}
Hoistingপুরোটা উপরে ওঠেওঠে না
ঘোষণার আগে ব্যবহারযায়যায় না
ভেরিয়েবলে রাখাসরাসরি যায় নাযায়
শুধু নাম ছাড়াহয় নাহয় (anonymous)
if ব্লকের ভিতরেবিস্তারিতবিস্তারিত
মনে রাখুন

if-এর ভিতরে শর্তসাপেক্ষ function লিখতে হলে সবসময় function expression ব্যবহার করুন — বিভিন্ন ব্রাউজারে declaration-এর আচরণ আলাদা হতে পারে।

শেষ প্যারায় নিজে practice করুন — কোড কপি করে নিজের এডিটরে চালিয়ে দেখুন।
Functions & Scope বিভাগের আরও প্রশ্নJavaScript প্রশ্ন/উত্তর
Tech Tutor

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

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

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

mdanamolhasan1998@gmail.com