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. Advanced
  5. Q27. What are JavaScript modules (import/export)?
JavaScriptAdvanced

Q27. What are JavaScript modules (import/export)?

ES module কীভাবে কোড ভাগ করে, named ও default export-এর পার্থক্য এবং গতিশীল import।

Module মানে কোডকে ছোট ছোট ফাইলে ভাগ করা, যাতে প্রতিটি ফাইলের একটি স্পষ্ট কাজ থাকে এবং ফাইলগুলো export ও import দিয়ে একে অন্যের সাথে যুক্ত হয়।

math.js — exportjavascript
javascript
// math.js — এখান থেকে কিছু পাঠানো হচ্ছে
export function add(a, b) {
  return a + b;
}

export const PI = 3.1416;

export default class Calculator {
  // ...
}
app.js — importjavascript
javascript
// app.js — এখান থেকে নেওয়া হচ্ছে
import Calculator, { add, PI } from "./math.js";

console.log(add(2, 3)); // 5
console.log(PI);        // 3.1416

দুটি ধরনের export আছে। Named export-এ চিহ্ন লেখা থাকে, তাই কোনটা নিচ্ছি তা পরিষ্কার। আর default export-এ কোনো নাম লেখতে হয় না, ফাইলে একটি করেই default রাখা যায়।

import-এর বিভিন্ন ধরনjavascript
javascript
// একসাথে সব import
import { add, PI } from "./math.js";

// alias দিয়ে অন্য নামে
import { add as plus } from "./math.js";

// পুরো namespace হিসেবে
import * as math from "./math.js";

math.add(2, 3);

Named import-এর নাম ভুল লিখলে বা export করা নাম না থাকলে build টাইমেই error পড়ে — ফলে ভুল ধরা পড়ে।

Module ব্যবহারের জন্য type="module" লাগে, তাই package-এ type বা .mjs এক্সটেনশন লাগতে পারে।

module চালু করাjavascript
javascript
// index.html
<script type="module" src="./app.js"></script>

// Node-এ ESM চালাতে package.json-এ
{ "type": "module" }

// অথবা ফাইলের নাম .mjs রাখুন

Import গতিশীলভাবেও করা যায় — ফাংশনের ভিতরে import() লিখলে সেটা তখনই লোড হয়।

গতিশীল importjavascript
javascript
async function loadPage(name) {
  const module = await import("./pages/" + name + ".js");
  return module.render();
}

// এক্ষেত্রে লোড হওয়া ফাইল আলাদা আলাদা chunk হয়
// শুধু দরকার হলে তখনই ডাউনলোড হয়

Module-এর আরেকটি বড় সুবিধা — import করা মান live binding। মূল ফাইলে ভেরিয়েবলটি বদলালে, যে ফাইল সেটি import করেছে তাতেও নতুন মান দেখা যায়।

live bindingjavascript
javascript
// counter.js
export let count = 0;

export function increment() {
  count++;
}

// app.js
import { count, increment } from "./counter.js";

console.log(count); // 0
increment();
console.log(count); // 1 — মূল ফাইল বদলালে এখানেও দেখা যায়
বিষয়Named exportDefault export
ফাইলে কয়টিযত খুশিসর্বোচ্চ একটি
Import-এ নামলিখতে হয়না লিখলেও চলে
পরিবর্তন করাসহজঝামেলা বেশি
সুপারিশবেশি ব্যবহারএকমাত্র main export-এ
সতর্কতা

মিসনা import করলে ওই module-এর সব কোড চলে আসে, bundle-এ সাইজ বাড়ে। তাই বড় লাইব্রেরি import না করে দরকারমতো নির্দিষ্ট অংশ import করাই ভালো।

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

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

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

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

mdanamolhasan1998@gmail.com