Open Playground
JS TutorialLesson #253

JavaScript Modules Import

You can import modules in two ways, based on if they are named exports or default exports.

Import

You can import modules in two ways, based on if they are named exports or default exports.

Example

Example Code

javascript
Try it Yourself
import { name, age } from "./person.js";

Example

Example Code

javascript
Try it Yourself
import message from "./message.js";

Named Imports

Named imports match named exports in a module.

They let you import one or more explicitly named variables or functions from a module.

You must use the exact names enclosed in curly { } braces:

Examples

Example Code

javascript
Try it Yourself
import { name, age } from "./person.js";

Named Import Rules

Import names must match export names:

Example

Example Code

javascript
Try it Yourself
import { addd } from './math.js'; // ❌ Error (name mismatch)

You can import multiple items at once:

Example

Example Code

javascript
Try it Yourself
import { add, PI } from './math.js';

You can rename them using as:

Example

Example Code

javascript
Try it Yourself
import { add as addition } from './math.js';

Default Import

Default import is the way to import the primary exported value from a module - the one that was exported using export default.

Defalt imports are the counterpart to default exports.

You can give a default export any name you like, during import, without using curly braces:

Examples

Example Code

javascript
Try it Yourself
import text from "./message.js";

Default Import Rules

Default import imports single default exports

Example

Example Code

javascript
Try it Yourself
import message from "./message.js";

There is no required name. Renaming is allowed.

Example

Example Code

javascript
Try it Yourself
import text from "./message.js";

Default + Named Import

A module can provide one main function plus some helpers:

Module File

Example Code

javascript
Try it Yourself
export default function parse() { ... }

export function validate() { ... }

export function format() { ... }

Importing All

You can import all named exports from a module as a single object using the * syntax.

Examples

Example Code

javascript
Try it Yourself
// Import all named exports from person.js

import * as person from "./person.js";

Default Import vs Named

FeatureDefault ImportNamed Import
Typical use caseOne main feature per moduleMultiple features
Matches export name?No (you choose)Yes (must match)
Can rename freely?AlwaysOnly with as
Export countOnly one default export allowedMultiple exports allowed

Interactive Code Examples

Example 1

javascript
Try it Yourself
JavaScript syntax and algorithm demonstration.
import { name, age } from "./person.js";

Example 2

javascript
Try it Yourself
JavaScript syntax and algorithm demonstration.
import message from "./message.js";

Examples

javascript
Try it Yourself
JavaScript syntax and algorithm demonstration.
import { name, age } from "./person.js";

Example 4

javascript
Try it Yourself
JavaScript syntax and algorithm demonstration.
import { addd } from './math.js'; // ❌ Error (name mismatch)

Example 5

javascript
Try it Yourself
JavaScript syntax and algorithm demonstration.
import { add, PI } from './math.js';

Example 6

javascript
Try it Yourself
JavaScript syntax and algorithm demonstration.
import { add as addition } from './math.js';