Fundamentos de ESM: import/export, default frente a named
Aprenda los fundamentos de import/export en ESM: qué es un módulo, exports con nombre frente a default, imports de namespace y una breve comparación con CommonJS.
Fundamentos de ESM: import/export, default frente a named es una lección gratuita de JavaScript Academy en CoddyKit. Esta es la lección 1 de 3. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de JavaScript Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de JavaScript Academy incluye 3 lecciones en total.
¿Qué es un módulo?
Objetivo: lea la sintaxis de los módulos con confianza.
- Qué es un módulo
- Exportaciones con nombre frente a predeterminadas
- import * como espacio de nombres
- Contraste rápido con CJS

Módulo = archivo + ámbito local
Un módulo es un archivo. Sus variables son locales a menos que las 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());
})();
Exportaciones con nombre — idea
Las exportaciones con nombre usan llaves al importar: import { name }. Puede exportar varios elementos desde un archivo.
// 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));
Exportación predeterminada — idea
Una exportación predeterminada se importa sin llaves: 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"));
Importación de espacio de nombres
import * as ns reúne las exportaciones con nombre en un solo objeto (por ejemplo, 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));
Contraste entre CJS y resolución
CJS frente a ESM (visión general):
- ESM: sintaxis de importación y exportación (estática). Ejemplo: import { x } from "./m.js".
- CJS: require/module.exports (dinámica). Ejemplo: const x = require("./m.js").
- En ESM, use extensiones de archivo explícitas en el navegador y en muchas configuraciones de Node (por ejemplo, ./file.js).

Cuestionario sobre importaciones con nombre y predeterminadas
Comprobación rápida: sintaxis de importación con nombre.

Repaso
Repaso: un módulo es un archivo. Use exportaciones con nombre con llaves, una exportación predeterminada sin llaves e import * para un espacio de nombres. CJS usa require y ESM usa import.

Preguntas frecuentes
¿La lección «Fundamentos de ESM: import/export, default frente a named» es gratis?
Sí — el texto completo de «Fundamentos de ESM: import/export, default frente a named» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de JavaScript Academy, actualiza a CoddyKit PRO. El curso de JavaScript Academy incluye 3 lecciones en total.
¿Qué aprenderé en «Fundamentos de ESM: import/export, default frente a named»?
Aprenda los fundamentos de import/export en ESM: qué es un módulo, exports con nombre frente a default, imports de namespace y una breve comparación con CommonJS. Practicas JavaScript Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar JavaScript Academy?
No se requiere experiencia previa. JavaScript Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 1 de 3.
¿Cuánto tiempo toma la lección «Fundamentos de ESM: import/export, default frente a named»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de JavaScript Academy?
Sí. Cada lección de JavaScript Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Fundamentos de ESM: import/export, default frente a named
- Fundamentos de CommonJS: require/module.exports y exports
- Resolución de módulos en Node y bundlers del navegador