Skip to main content

Command Palette

Search for a command to run...

JavaScript Modules: Import and Export Explained

Updated
•View as Markdown
JavaScript Modules: Import and Export Explained
A
Backend Developer

Imagine you have a big school project.

Instead of writing everything in one notebook, you decide:

  • one notebook for math

  • one for science

  • one for notes

Now everything is easy to find.

That’s exactly what JavaScript modules do for your code.


Why Modules Are Needed

When you start coding, you usually write everything in one file.

At first, it feels fine. But as your project grows:

  • the file becomes very long

  • it becomes hard to find things

  • changing one part can break another

This creates confusion and slows you down.

Modules solve this by letting you split your code into smaller, organized pieces, so everything stays clean and easy to manage.


What is a Module?

A module is simply:

a separate file that contains some code

You can think of it like a small box of code.

Inside that box, you can put functions, variables, or logic. Then, you can use that box in other files whenever you need it.

So instead of one big file, you have many small useful files.


What is Export? (Sending Code Out)

Export means:

“I want to share this code with other files”

When you export something, you are saying:

“This function or value can be used outside this file”


Example

// math.js
export function add(a, b) {
  return a + b;
}

Here, we are exporting the add function.

This means other files can use it.


Simple Understanding

  • This file has a function

  • We make it public

  • Others can access it


What is Import? (Using Code)

Import means:

“I want to use code from another file”


Example

// app.js
import { add } from "./math.js";

console.log(add(2, 3));

Explanation

  • app.js asks for the add function

  • math.js gives it

  • Now app.js can use it

Import = taking code from another file


Named Export (Multiple Things)

Named export means:

you can export many things from one file


Example

// math.js
export function add(a, b) {
  return a + b;
}

export function subtract(a, b) {
  return a - b;
}

Import

import { add, subtract } from "./math.js";

Explanation

You are picking specific things by name.

You must use the same names. That’s why it’s called “named”


Default Export (One Main Thing)

Default export means:

this file has one main thing


Example

// greet.js
export default function greet() {
  console.log("Hello!");
}

Import

import greet from "./greet.js";

Explanation

  • Only one default export allowed

  • You can give it any name when importing

It’s like the “main item” of the file


Difference (Very Simple)

Named export:

  • many things, fixed names

Default export:

  • one thing, flexible name

How Modules Work Together

Let’s understand this slowly.


Step 1:

You create a file and export something


Step 2:

Another file imports it


Step 3:

That file uses it


Flow

File A (export) → File B (import) → Use code

This is how files talk to each other


Example:

Imagine:

  • math.js → does calculations

  • app.js → uses those calculations

Instead of rewriting logic again and again, you just import it.

This saves time and keeps code clean.


Benefits of Modules

Modules help you:


1. Keep Code Clean

Small files are easier to understand than one big file.


2. Reuse Code

Write once → use everywhere.


3. Fix Bugs Easily

If something breaks, you know exactly where to look.


4. Work in Teams

Different people can work on different files without conflict.


Best Way to Remember

Modules are like boxes of code

  • export → put things in box

  • import → take things out


Final Thought

Modules don’t make coding harder.

They make your code clean, organized, and easier to understand.

More from this blog

A

Ashish Jha · Dev

34 posts

A personal blog where I write simple and practical explanations about backend development, Git, JavaScript, and full-stack web development as I learn and build.