Curso· Cargando…
El JavaScript justo para mover una página, leer datos y no perderse en sintaxis. Pensado para gente que ya hizo HTML y CSS y quiere dar el siguiente paso sin entrar en la madriguera del conejo.
¿Cómo hago que una página reaccione al usuario y pida datos a un servidor sin que la app se congele?
Eres dev junior que conecta un front con un back. Tu equipo necesita una pequeña app que muestre datos reales de una API pública (una búsqueda o lista con filtro) y que no se rompa cuando la red falla o el usuario mete cualquier cosa.
Al finalizar, podras explicar por que JavaScript es la lingua franca de la web (historia 1995, TC39, runtimes multiples) y ejecutar tu primer programa en navegador, Node y Bun para validar el alcance real del lenguaje.
Al finalizar, podrás declarar variables en JavaScript usando const por defecto y let cuando vayas a reasignar, explicar por qué var (function-scoped + hoisting) genera bugs sutiles en bucles y closures, identificar la Temporal Dead Zone como la razón por la que ES6 forzó esta separación, y refactorizar código legacy con var a la sintaxis moderna sin romper semántica.
Entregas: Una app vanilla JS desplegada que consume una API pública: búsqueda/lista con filtro, manejo de estados de carga y error, validación de input, en un repo de GitHub con su README.
Se evalúa
Variables, tipos y funciones
Fundamentos (epítome): la L1 corre un script con efecto visible; const/let, tipos primitivos y funciones en sus tres formas.
Arrays, objetos y control de flujo
Práctica guiada: transformar datos con arrays y objetos, condiciones y bucles, try/catch con criterio sobre plantillas.
El navegador, el DOM y async
Proyecto autónomo: DOM y eventos, fetch resistente, async/await y un formulario que llama a una API sin plantilla.
Al finalizar, podras identificar los 7 tipos primitivos de ECMAScript (string, number, bigint, boolean, undefined, null, symbol), distinguir cuando JavaScript aplica coercion implicita en comparaciones y operaciones aritmeticas, y aplicar las reglas defensivas (=== en vez de ==, Number.isNaN en vez de == NaN, Array.isArray en vez de typeof) que evitan los bugs silenciosos del sistema de tipos.