Skip to content

GitLab

  • Menu
Projects Groups Snippets
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
  • E ECMAscript-Typescript
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 11
    • Issues 11
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 0
    • Merge requests 0
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Monitor
    • Monitor
    • Metrics
    • Incidents
  • Packages & Registries
    • Packages & Registries
    • Package Registry
    • Infrastructure Registry
  • Analytics
    • Analytics
    • CI/CD
    • Repository
    • Value stream
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • imunnic
  • ECMAscript-Typescript
  • Wiki
  • Modulo 2

Last edited by imunnic Dec 19, 2025
Page history
This is an old version of this page. You can view the most recent version or browse the history.

Modulo 2

Módulo 2 — Importación de elementos en JavaScript

1. Importación de datos

En JavaScript es posible importar datos (constantes, variables, objetos o listas) definidos en otros archivos, o bien cargarlos desde archivos JSON externos. Esto permite mantener la información organizada y separada de la lógica del programa.

Ejemplo: Importación desde otro archivo JavaScript

Archivo data/recursos.js:

// data/recursos.js
export const personalSanitario = [
  { id: 1, nombre: "Laura Gómez", puesto: "Enfermera" },
  { id: 2, nombre: "Javier Ruiz", puesto: "Médico general" },
  { id: 3, nombre: "María Pérez", puesto: "Técnico de laboratorio" }
];

export const equiposMedicos = [
  { id: "E001", tipo: "Monitor cardíaco", estado: "Operativo" },
  { id: "E002", tipo: "Respirador", estado: "En mantenimiento" }
];

Archivo gestion/mostrarRecursos.js:

// gestion/mostrarRecursos.js
import { personalSanitario, equiposMedicos } from '../data/recursos.js';

console.log("Listado de personal sanitario:");
personalSanitario.forEach(p => {
  console.log(`- ${p.nombre} (${p.puesto})`);
});

console.log("\nListado de equipos médicos:");
equiposMedicos.forEach(e => {
  console.log(`- ${e.tipo} [${e.estado}]`);
});

Salida esperada:

Listado de personal sanitario:
- Laura Gómez (Enfermera)
- Javier Ruiz (Médico general)
- María Pérez (Técnico de laboratorio)

Listado de equipos médicos:
- Monitor cardíaco [Operativo]
- Respirador [En mantenimiento]

Ejemplo: Importación desde un archivo JSON usando fetch()

Cuando los datos están en formato JSON, se pueden cargar de manera dinámica mediante fetch(), lo cual resulta útil para trabajar con información almacenada en servidores o ficheros externos.

Archivo data/materiales.json:

[
  { "id": "M001", "nombre": "Guantes de nitrilo", "stock": 500 },
  { "id": "M002", "nombre": "Mascarillas FFP2", "stock": 1200 },
  { "id": "M003", "nombre": "Batas desechables", "stock": 300 }
]

Archivo gestion/materiales.js:

// gestion/materiales.js
async function cargarMateriales() {
  try {
    const respuesta = await fetch('../data/materiales.json');

    if (!respuesta.ok) {
      throw new Error(`Error al cargar los datos: ${respuesta.status}`);
    }

    const materiales = await respuesta.json();

    console.log("Materiales disponibles:");
    materiales.forEach(m => {
      console.log(`- ${m.nombre}: ${m.stock} unidades`);
    });

  } catch (error) {
    console.error("No se pudieron cargar los materiales:", error.message);
  }
}

cargarMateriales();

Salida esperada:

Materiales disponibles:
- Guantes de nitrilo: 500 unidades
- Mascarillas FFP2: 1200 unidades
- Batas desechables: 300 unidades

Nota: El uso de fetch() requiere ejecutar el código desde un servidor local o remoto. Si el archivo se abre directamente desde el sistema de archivos, el navegador puede bloquear la lectura por motivos de seguridad.


2. Importación de funciones

Las funciones reutilizables pueden definirse en un módulo y compartirse entre distintos archivos mediante export e import. Esto permite mantener el código organizado y evitar duplicaciones.

Ejemplo: Funciones de cálculo y formato

Archivo utils/calculos.js:

// utils/calculos.js
export function calcularPorcentajeUso(total, enUso) {
  return ((enUso / total) * 100).toFixed(1);
}

export function capitalizarTexto(texto) {
  return texto.charAt(0).toUpperCase() + texto.slice(1);
}

Archivo reportes/usoRecursos.js:

// reportes/usoRecursos.js
import { calcularPorcentajeUso, capitalizarTexto } from '../utils/calculos.js';

const totalEquipos = 50;
const equiposEnUso = 38;

console.log(`Porcentaje de uso de equipos: ${calcularPorcentajeUso(totalEquipos, equiposEnUso)}%`);
console.log(`Tipo de recurso: ${capitalizarTexto("equipo médico")}`);

Salida esperada:

Porcentaje de uso de equipos: 76.0%
Tipo de recurso: Equipo médico

3. Importación de clases

Las clases permiten representar entidades del sistema, como empleados, recursos o departamentos. Cada clase puede definirse en su propio archivo y luego importarse donde sea necesario.

Ejemplo: Clase RecursoHumano

Archivo models/RecursoHumano.js:

// models/RecursoHumano.js
export class RecursoHumano {
  constructor(id, nombre, puesto, turno) {
    this.id = id;
    this.nombre = nombre;
    this.puesto = puesto;
    this.turno = turno;
  }

  mostrarFicha() {
    console.log(`RecursoHumano #${this.id}: ${this.nombre} - ${this.puesto} (${this.turno})`);
  }
}

Archivo gestion/personal.js:

// gestion/personal.js
import { RecursoHumano } from '../models/RecursoHumano.js';

const recursoHumano1 = new RecursoHumano(1, "Laura Gómez", "Enfermera", "Turno mañana");
const recursoHumano2 = new RecursoHumano(2, "Javier Ruiz", "Médico general", "Turno noche");

recursoHumano1.mostrarFicha();
recursoHumano2.mostrarFicha();

Salida esperada:

Recurso #1: Laura Gómez - Enfermera (Turno mañana)
Recurso #2: Javier Ruiz - Médico general (Turno noche)

4. Buenas prácticas

  • Usar rutas relativas (./ o ../) para importar módulos locales.
  • Incluir la extensión .js en las rutas de los módulos.
  • Centralizar los datos, funciones y clases en carpetas específicas (/data, /utils, /models).
  • Usar export default cuando el módulo exporta un único elemento principal.

Ejemplo de exportación por defecto:

// utils/logger.js
export default function log(mensaje) {
  console.log(`[LOG]: ${mensaje}`);
}
// main.js
import log from './utils/logger.js';
log("Aplicación iniciada correctamente.");
Clone repository

Índice

  • Inicio
  • Modulo 1. Sitaxis básica
  • Modulo 2. Importaciones en Javascript