0Pricing
JavaScript Academy · Aula

Fundamentos de ESM — import/export, padrão versus nomeado

Aprenda os fundamentos de import/export em ESM: o que é um módulo, exportações nomeadas e padrão, importações de espaço de nomes e um contraste breve com CommonJS

Fundamentos de ESM — import/export, padrão versus nomeado é uma aula grátis de JavaScript Academy no CoddyKit. Esta é a aula 1 de 3. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de JavaScript Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de JavaScript Academy inclui 3 aulas no total.

O que é um módulo?

Objetivo: ler a sintaxe de módulos com confiança.

  • O que é um módulo
  • Exportações nomeadas e padrão
  • import * como espaço de nomes
  • Uma comparação rápida com CJS
Fundamentos de ESM — import/export, padrão versus nomeado — ilustração 1

Módulo = arquivo + escopo local

Um módulo é um arquivo. Suas variáveis são locais, a menos que você as exporte.

// 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());
})();
Fundamentos de ESM — import/export, padrão versus nomeado — ilustração 2

Exportações nomeadas — ideia

As exportações nomeadas usam chaves na importação: import { name }. Você pode exportar vários itens de um arquivo.

// 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));
Fundamentos de ESM — import/export, padrão versus nomeado — ilustração 3

Exportação padrão — ideia

Uma exportação padrão é importada sem chaves: 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"));
Fundamentos de ESM — import/export, padrão versus nomeado — ilustração 4

Importação de espaço de nomes

import * as ns reúne as exportações nomeadas em um único objeto (por exemplo, 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));
Fundamentos de ESM — import/export, padrão versus nomeado — ilustração 5

Comparação entre CJS e observações sobre resolução

CJS vs ESM (visão geral):

  • ESM: sintaxe de importação/exportação (estática). Exemplo: import { x } from "./m.js".
  • CJS: require/module.exports (dinâmica). Exemplo: const x = require("./m.js").
  • Em ESM, use extensões de arquivo explícitas no navegador e em muitas configurações do Node (por exemplo, ./file.js).
Fundamentos de ESM — import/export, padrão versus nomeado — ilustração 6

Quiz sobre importações nomeadas e padrão

Verificação rápida: sintaxe de importação nomeada.

Fundamentos de ESM — import/export, padrão versus nomeado — ilustração 7

Recapitulação

Recapitulação: um módulo é um arquivo. Use exportações nomeadas com chaves, uma exportação padrão sem chaves e import * para um espaço de nomes. CJS usa require, e ESM usa import.

Fundamentos de ESM — import/export, padrão versus nomeado — ilustração 8

Perguntas Frequentes

A aula “Fundamentos de ESM — import/export, padrão versus nomeado” é grátis?

Sim — o texto completo de “Fundamentos de ESM — import/export, padrão versus nomeado” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de JavaScript Academy, atualize para CoddyKit PRO. O curso de JavaScript Academy inclui 3 aulas no total.

O que vou aprender em “Fundamentos de ESM — import/export, padrão versus nomeado”?

Aprenda os fundamentos de import/export em ESM: o que é um módulo, exportações nomeadas e padrão, importações de espaço de nomes e um contraste breve com CommonJS Você pratica JavaScript Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar JavaScript Academy?

Nenhuma experiência prévia é necessária. JavaScript Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 1 de 3.

Quanto tempo leva a aula “Fundamentos de ESM — import/export, padrão versus nomeado”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de JavaScript Academy?

Sim. Cada aula de JavaScript Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Fundamentos de ESM — import/export, padrão versus nomeado
  2. Fundamentos de CommonJS — require/module.exports e exports
  3. Resolução de módulos no Node e em empacotadores de navegador
← Voltar para JavaScript Academy