← Kembali ke kursus
Pelajaran kursus · JavaScript
Pelajaran 35

Modules: import/export

Named export, default export, dynamic import.

Pahami konsepnya

ES Modules memecah kode ke berkas-berkas: export dari satu sisi, import di sisi lain. Named export: export const nama = "Ari" diimpor dengan import { nama } from "./berkas.js". Default export: export default function main() diimpor dengan nama bebas: import apapun from "./berkas.js". Satu berkas hanya punya SATU default tapi banyak named.

Import rename: import { nama as n } — berganti nama lokal. Import semua: import * as util from "./util.js" lalu util.fungsi(). Dynamic import: const modul = await import("./besar.js") — hanya dimuat saat dibutuhkan, menghasilkan Promise.

Modules punya scope sendiri — variabel tidak bocor ke global. Ini perbaikan besar dari IIFE dan script tag kaku. Di browser pakai <script type="module">; di Node.js gunakan .mjs atau "type": "module" di package.json.

Coba contoh kode

// ---- util.js ----
export const PI = 3.14159;
export function luas(r) { return PI * r * r; }
export default function sapa() { return "Halo!"; }

// ---- main.js ----
import sapa, { PI, luas } from "./util.js";
import { PI as phi } from "./util.js";
import * as util from "./util.js";

console.log(sapa(), PI, luas(7));
console.log(phi, util.luas(14));

// dynamic import
// const modul = await import("./util.js");

Default import (sapa) tanpa kurung kurawal, named import ({PI, luas}) dengan. as mengganti nama. * as util mengemas semua named ke satu objek.

Latihan singkat

Uji: default export function yang mengembalikan `Halo dari module!`.