Skip to main content
← ⚑ JavaScript & the browserΒ·Module C3 Β· Lesson 2
TaskIn this single-file lesson, both source files live inside <script type='module'>. Define double(n) and PI inside one inline module (via blob: URL or just inline JS), but since this lesson is a 1-file approximation: declare double and PI inline at top of a module script, then log double(PI) so the console shows 6.28318.

Named exports: importing several things

75 XP6 min
Theory

The named export shape

// utils.js
export const PI = 3.14159;
export function double(n) { return n * 2; }
export function triple(n) { return n * 3; }
// app.js
import { PI, double } from "./utils.js";
console.log(double(PI));   // 6.28318

Every export keyword in the source file creates a named export. The import { ... } syntax in another file pulls them out by name. Names must match exactly β€” there's no auto-pluralization, no guessing.

What goes inside the curlies

import { double, triple as triple3x }   from "./utils.js";   // rename on import
import { PI as Ο€ }                       from "./utils.js";   // any valid identifier
import * as utils                        from "./utils.js";   // grab everything as a namespace

import * as utils is the escape hatch when you want every export grouped under one object. Use it sparingly β€” it defeats tree-shaking (C3-06).

Where the file paths go

Browser module specifiers must be either:

  • Relative β€” "./utils.js" or "../helpers/format.js". Note the .js extension β€” required.
  • Absolute URL β€” "https://cdn.example.com/lib.mjs".
  • Root-relative β€” "/lib/utils.js".

Bare names like "react" only work after a bundler (or import maps β€” C3-06).

πŸ”’

Sign up to start coding

Theory is open to everyone. The interactive editor, live preview, and check are unlocked with a 7-day free trial β€” card required, cancel anytime.

Sign up β€” free trial β†’

First 10 lessons in each track are free. No card needed for those.

← PreviousNext lesson β†’

Get one Python or web tip a day β€” by email

Short, hand-written, no spam. Unsubscribe in one click.