0Pricing
JavaScript Academy · レッスン

ESMの基礎 — import/export、defaultとnamed

ESMのimport/exportの基礎を学びます。モジュールとは何か、namedとdefaultのエクスポート、名前空間インポート、CommonJSとの簡単な違いを扱います。

「ESMの基礎 — import/export、defaultとnamed」はCoddyKit上の無料JavaScript Academyレッスンです。 これはレッスン1/3です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはJavaScript Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 JavaScript Academyコースには全3レッスンが含まれています。

モジュールとは

目標:モジュール構文を自信を持って読めるようにします。

  • モジュールとは何か
  • 名前付きエクスポートとデフォルトエクスポートの違い
  • 名前空間としてのimport *
  • CJSとの簡単な比較
ESMの基礎 — import/export、defaultとnamed — イラスト1

モジュール = ファイル + ローカルスコープ

モジュールはファイルです。変数はexportしない限りローカルです。

// A module is just a file with its own scope
// Here we simulate "module scope" by keeping variables local.
(function () {
  const secret = 42;                          // local to this file/scope
  function reveal() { return "value:" + secret; }
  console.log("module-like scope:", typeof secret === "number", reveal());
})();
ESMの基礎 — import/export、defaultとnamed — イラスト2

名前付きエクスポート — 考え方

名前付きエクスポートをインポートするには、中かっこを使います:import { name }。1つのファイルから複数の項目をエクスポートできます。

// Named exports: you export multiple items by name
const exampleNamedExport = [
  "export const PI = 3.14;",
  "export function sum(a, b) { return a + b; }",
  "import { PI, sum } from \\"./math.js\\";"
];

console.log("named export example:");
for (const line of exampleNamedExport) console.log(line);

// Tiny emulation: pretend we imported two named symbols
const PI = 3.14;
function sum(a, b) { return a + b; }
console.log("emulated use:", PI, sum(2, 3));
ESMの基礎 — import/export、defaultとnamed — イラスト3

デフォルトエクスポート — 考え方

デフォルトエクスポートは、中かっこを使わずにインポートします:import name from "path"。

// Default export: each module can have at most one default
const exampleDefault = [
  "export default function greet(name) { return \\"Hi \\" + name; }",
  "import greet from \\"./greet.js\\"; // no braces"
];

console.log("default export example:");
for (const line of exampleDefault) console.log(line);

// Emulation of default import usage
function greet(name) { return "Hi " + name; }
console.log("emulated default:", greet("Ayla"));
ESMの基礎 — import/export、defaultとnamed — イラスト4

名前空間インポート

import * as nsを使うと、名前付きエクスポートを1つのオブジェクトにまとめられます(例:math.sum)。

// Namespace import collects all named exports under one object
const exampleNamespace = [
  "import * as math from \\"./math.js\\";",
  "console.log(math.PI, math.sum(1, 2));"
];

console.log("namespace import example:");
for (const line of exampleNamespace) console.log(line);

// Emulate a namespace object
const math = { PI: 3.14, sum: function (a, b) { return a + b; } };
console.log("namespace use:", math.PI, math.sum(4, 5));
ESMの基礎 — import/export、defaultとnamed — イラスト5

CJSとの違いと解決に関するメモ

CJSとESMの違い(概要):

  • ESM:import/export構文を使います(静的)。例:import { x } from "./m.js"。
  • CJS:require/module.exportsを使います(動的)。例:const x = require("./m.js")。
  • ESMでは、ブラウザーや多くのNode環境で明示的なファイル拡張子を使用します(例:./file.js)。
ESMの基礎 — import/export、defaultとnamed — イラスト6

名前付きインポートとデフォルトインポートのクイズ

クイックチェック:名前付きインポートの構文です。

ESMの基礎 — import/export、defaultとnamed — イラスト7

まとめ

まとめ:モジュールはファイルです。名前付きエクスポートには中かっこを使い、1つのデフォルトエクスポートには中かっこを使いません。名前空間にはimport *を使用します。CJSではrequire、ESMではimportを使用します。

ESMの基礎 — import/export、defaultとnamed — イラスト8

よくある質問

「ESMの基礎 — import/export、defaultとnamed」レッスンは無料ですか?

はい。「ESMの基礎 — import/export、defaultとnamed」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、JavaScript Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 JavaScript Academyコースには全3レッスンが含まれています。

「ESMの基礎 — import/export、defaultとnamed」で何を学びますか?

ESMのimport/exportの基礎を学びます。モジュールとは何か、namedとdefaultのエクスポート、名前空間インポート、CommonJSとの簡単な違いを扱います。 ブラウザで直接実行するハンズオンコードでJavaScript Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

JavaScript Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのJavaScript Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/3です。

「ESMの基礎 — import/export、defaultとnamed」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このJavaScript Academyレッスンでコードを書いて実行できますか?

はい。すべてのJavaScript Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. ESMの基礎 — import/export、defaultとnamed
  2. CommonJSの基礎 — require/module.exportsとexports
  3. Nodeとブラウザのバンドラーにおけるモジュール解決
← JavaScript Academyに戻る