JavaScript – Tutorial completo
Lleva tus habilidades al siguiente nivel con este curso de JavaScript. Aprende a programar la interactividad y lógica de sitios web modernos.
🚀 Antes de programar con JS
Para un aprendizaje óptimo, te recomendamos dominar primero nuestras guías de:
¿Ya conoces las bases? Comienza el tutorial de JS aquí abajo:
GUÍA JAVASCRIPT
Fundamentos
1. Introducción a JavaScript
JavaScript es uno de los pilares fundamentales del desarrollo web, junto con HTML y CSS. Permite crear páginas interactivas, dinámicas y con comportamientos avanzados del lado del cliente.
¿Qué es JavaScript, para qué sirve y cómo funciona?
2. Incluir JavaScript al documento HTML
Existen distintas formas de agregar JavaScript a un documento HTML, ya sea mediante scripts internos, archivos externos o código inline, siguiendo buenas prácticas de rendimiento y mantenimiento.
¿Cómo insertar JavaScript al documento HTML?
3. console.log()
console.log() es una herramienta fundamental para depurar código. Te ayudará a comprender mejor los siguientes puntos y ejemplos de esta guía para aprender a usar JavaScript mostrando información en la consola del navegador.
¿Para qué sirve console.log? Ejemplos
4. Variables en JavaScript
Las variables en JavaScript son contenedores que permiten almacenar datos para ser utilizados y manipulados a lo largo del programa. Son fundamentales para guardar información, realizar cálculos y controlar el flujo de la aplicación.
5. Comprobación de tipos con typeof
El operador typeof permite conocer el tipo de dato de una variable o valor
en JavaScript. Es una herramienta clave para depuración, validaciones y control
del flujo del programa.
6. Shadowing en variables
El shadowing ocurre cuando una variable declarada en un ámbito interno tiene el mismo nombre que otra variable en un ámbito externo, “ocultando” temporalmente su valor.
¿Qué es Shadowing y cómo evitarlo?
7. Tipos de datos en JavaScript
Los tipos de datos definen la naturaleza de los valores que puede manejar JavaScript,
como números, cadenas de texto, valores booleanos, null y undefined.
Comprenderlos es esencial para escribir código correcto y predecible.
8. Operadores en la programación
Los operadores en programación permiten realizar cálculos, asignaciones, comparaciones y operaciones lógicas, siendo fundamentales para controlar el comportamiento de los programas.
¿Qué son los operadores en la programación?
9. Tipos de Operadores en JavaScript
Los operadores en JavaScript permiten realizar cálculos, comparaciones, asignaciones y evaluaciones lógicas. Son fundamentales para manipular datos y controlar el flujo de ejecución de un programa.
10. Modo estricto en JavaScript
Al activar el modo estricto ("use strict"), se aplican reglas y restricciones
más rigurosas en el código con el objetivo de ayudarte a escribir JavaScript
más limpio, seguro y menos propenso a errores comunes.
Estructuras de control
11. Condicional if…else
La estructura condicional if…else permite ejecutar distintos bloques
de código según se cumpla o no una condición, siendo una de las bases
del control de flujo en JavaScript.
12. Condicional switch
La estructura switch se utiliza para evaluar una expresión
y ejecutar distintos bloques de código según los valores posibles,
ofreciendo una alternativa clara al uso de múltiples if.
13. Bucle for
El bucle for permite repetir un bloque de código un número
determinado de veces, siendo ideal cuando se conoce de antemano
la cantidad de iteraciones.
14. Bucle while
El bucle while ejecuta un bloque de código mientras
una condición sea verdadera, siendo útil cuando no se conoce
previamente el número de repeticiones.
15. Bucle do…while
El bucle do…while es similar al while,
pero garantiza que el bloque de código se ejecute al menos una vez
antes de evaluar la condición.
Arrays en JavaScript
16. Arrays en JavaScript
Un array en JavaScript es una estructura de datos que permite almacenar múltiples valores en una sola variable, facilitando la organización y manipulación de colecciones de datos.
¿Qué es un Arrays y para qué sirve?
17. Creación o declaración de arrays
Los arrays pueden declararse de distintas formas en JavaScript,
ya sea utilizando corchetes o el constructor Array,
dependiendo del contexto y la claridad del código.
18. Acceso a elementos de un array
Acceder a los elementos de un array permite obtener o modificar valores específicos utilizando índices numéricos que comienzan desde la posición cero.
¿Cómo acceder a los elementos de un array en JS?
19. Métodos de los arrays
Los métodos de los arrays permiten manipular, recorrer y transformar
datos de forma eficiente, utilizando funciones integradas como
push, pop, map y filter.
20. Longitud de un array
La propiedad length permite conocer la cantidad de elementos
que contiene un array en JavaScript, siendo fundamental para recorrerlo
y manipular sus datos correctamente.
21. Recorrer un array
Recorrer un array consiste en iterar sobre cada uno de sus elementos
para leerlos, modificarlos o realizar operaciones, utilizando bucles
como for, while o métodos específicos.
22. Agregar y quitar elementos de un array
JavaScript ofrece métodos como push, pop,
shift y unshift para agregar o quitar elementos
de un array de forma dinámica.
23. Vaciar un array
Vaciar un array significa eliminar todos sus elementos, lo cual puede lograrse de distintas formas dependiendo del contexto y del manejo de referencias en memoria.
¿Cómo vaciar un array? Ejemplos
24. Ordenar un array
El método sort() permite ordenar los elementos de un array,
ya sea alfabéticamente o numéricamente, teniendo en cuenta el criterio
de comparación utilizado.
25. Invertir un array
Invertir un array consiste en cambiar el orden de sus elementos, colocando el último como primero y viceversa. Esto puede lograrse fácilmente con métodos nativos de JavaScript.
¿Cómo invertir un array? Método reverse y más
26. Iterar un array
Iterar un array implica recorrer sus elementos uno por uno utilizando
distintos métodos como forEach, map,
for...of o bucles tradicionales.
27. Buscar elementos en un array
JavaScript ofrece distintos métodos para buscar elementos dentro de un array,
como indexOf, includes y find,
facilitando la localización de datos específicos.
28. Arrays multidimensionales en JavaScript
Los arrays multidimensionales permiten almacenar estructuras de datos más complejas, como matrices o tablas, utilizando arrays dentro de otros arrays.
¿Que son estos Arrays multidimensionales?
29. Desestructuración de arrays
La desestructuración de arrays permite extraer valores de un array y asignarlos a variables de forma rápida y clara, mejorando la legibilidad del código.
¿Qué es la desestructuración de arrays?Objetos en JavaScript.
30. ¿Para qué sirven los objetos en JS?
Los objetos en JavaScript permiten agrupar datos relacionados y comportamientos dentro de una misma estructura, representando entidades del mundo real de forma clara y organizada.
Objetos en JS
31. Crear objetos en JavaScript
Crear objetos es una de las bases del lenguaje. Pueden definirse usando notación literal, constructores o funciones, permitiendo estructurar datos de múltiples maneras.
¿Cómo crear objetos en JS?
32. La palabra clave this en objetos
La palabra clave this hace referencia al objeto actual desde
el cual se está ejecutando un método, permitiendo acceder a sus propiedades
y métodos internos.
33. Operador spread (…)
El operador spread permite copiar, combinar o expandir objetos de forma sencilla, evitando mutaciones y facilitando el trabajo con estructuras de datos complejas.
¿Qué es este operador spread?
34. Comparar objetos en JavaScript
Comparar objetos en JavaScript no es tan directo como comparar valores primitivos, ya que los objetos se comparan por referencia y no por su contenido.
¿Cómo comparar objetos en JS? Ejemplos
35. Desestructuración de objetos
La desestructuración de objetos permite extraer propiedades en variables independientes de forma rápida, clara y muy utilizada en código moderno.
¿Qué es la desestructuración de objetos?
36. Objetos como parámetros
Pasar objetos como parámetros permite enviar múltiples valores a una función de forma ordenada y flexible, mejorando la legibilidad del código.
¿Cómo pasar objetos como parámetros en JavaScript?
38. Set y Map: estructuras de datos modernas
Set y Map son estructuras modernas que permiten
almacenar datos únicos o pares clave-valor de forma más eficiente
que los objetos tradicionales.
Funciones declaradas en JavaScript
39. Funciones en JavaScript
Las funciones son bloques de código reutilizables que realizan una tarea específica en JavaScript. Permiten organizar y estructurar mejor los programas al encapsular lógica que puede ejecutarse varias veces.
¿Qué son las funciones en JavaScript?
40. Parámetros en funciones
Los parámetros permiten que las funciones reciban valores de entrada, haciendo que el código sea más flexible, reutilizable y dinámico.
Parámetros en funciones JavaScript: ¿Qué son?
41. Parámetros REST
Los parámetros REST permiten agrupar múltiples argumentos en un solo parámetro, facilitando el manejo de funciones con una cantidad variable de datos.
Parámetros REST en JavaScript
42. El objeto arguments
El objeto arguments permite acceder a todos los valores pasados
a una función, incluso cuando no se han definido parámetros explícitos.
43. Retorno de valores
El retorno de valores permite que una función devuelva un resultado luego de ejecutarse, posibilitando reutilizar ese valor en otras partes del programa.
Retorno de valores en funciones con JS
44. Alcance o Scope
El alcance o scope determina desde dónde pueden ser accedidas las variables y funciones dentro del código, evitando conflictos y errores inesperados.
Alcance de una función en JavaScript
45. Currying
El currying es una técnica funcional que transforma una función con múltiples argumentos en una serie de funciones que reciben un argumento a la vez.
Currying en JavaScript
46. Closures
Los closures permiten que una función recuerde y acceda a variables de su entorno aun después de que la función externa haya terminado su ejecución.
Closures en JavaScriptTipos de funciones
47. Funciones expresadas
Las funciones expresadas se asignan a una variable, permitiendo mayor control sobre el flujo del código y facilitando su uso como valores dentro de JavaScript.
Guía sobre funciones expresadas
48. Funciones flecha (Arrow Functions)
Las funciones flecha ofrecen una sintaxis más corta y clara,
además de un comportamiento especial del contexto this,
ideal para funciones simples y callbacks.
50. Funciones anónimas
Las funciones anónimas no tienen nombre y suelen utilizarse como funciones temporales, especialmente en eventos y callbacks.
Guía sobre funciones anónimas en JavaScript
51. Funciones de primera clase
En JavaScript, las funciones son de primera clase, lo que significa que pueden asignarse a variables, pasarse como argumentos y retornarse desde otras funciones.
Guía sobre funciones son de primera clase en JS
52. Funciones de orden superior
Las funciones de orden superior son aquellas que pueden recibir otras funciones como argumentos o devolverlas como resultado, permitiendo un estilo de programación más flexible y expresivo.
Guía sobre funciones de orden superior en JS
53. Funciones recursivas
La recursividad permite que una función se llame a sí misma para resolver problemas complejos dividiéndolos en casos más simples, siempre controlando una condición de salida.
Recursividad en JavaScript: ¿Cómo entenderla?
54. Funciones generadoras
Las funciones generadoras permiten pausar y reanudar la ejecución
de una función, produciendo valores de forma controlada mediante
la palabra clave yield.
55. Funciones autoejecutables (IIFE)
Las funciones autoejecutables se definen y ejecutan inmediatamente, ayudando a evitar la contaminación del scope global y a organizar mejor el código.
Guía sobre función autoejecutable en JSProgramación estructurada y modular – Manejo de errores.
56. Módulos en JavaScript (export / import)
Los módulos permiten dividir el código JavaScript en archivos independientes, facilitando la reutilización, el mantenimiento y una mejor organización de proyectos modernos.
Guía completa sobre los módulos export e import
57. Expresiones regulares (RegExp)
Las expresiones regulares son patrones que permiten buscar, validar y manipular texto de forma avanzada dentro de cadenas en JavaScript.
Expresiones regulares (RegExp) en JS
58. Temporizadores en JavaScript
Los temporizadores permiten ejecutar código después de un
determinado tiempo o de forma repetitiva, utilizando
setTimeout() y setInterval().
59. Manejo de errores
El manejo de errores permite controlar fallos en la ejecución
del código mediante estructuras como try,
catch y finally.
60. El objeto Math
El objeto Math proporciona propiedades y métodos
matemáticos para realizar cálculos comunes como redondeos,
potencias, raíces y números aleatorios.
61. El objeto Date
El objeto Date permite trabajar con fechas y horas
en JavaScript, obteniendo información como día, mes, año,
hora actual y más.
Manipulación del DOM (Document Object Model)
62. ¿Qué es el DOM?
El DOM (Document Object Model) es una representación estructurada del documento HTML que permite a JavaScript acceder, modificar y manipular dinámicamente el contenido de una página web.
¿Qué es el DOM y para que sirve?
63. Acceder al DOM
Acceder al DOM consiste en seleccionar elementos HTML desde JavaScript utilizando distintos métodos como selectores por ID, clase, etiqueta o selectores CSS.
¿Cómo acceder al DOM con JS? Ejemplos
64. Recorrer el DOM (DOM Traversal)
El recorrido del DOM permite navegar entre nodos padres, hijos y hermanos, facilitando la manipulación de estructuras complejas dentro del documento.
¿Cómo recorrer el DOM con JS?
65. Modificar contenido del DOM
JavaScript permite modificar el contenido de los elementos HTML
utilizando propiedades como textContent,
innerText e innerHTML.
66. Modificar atributos del DOM
Los atributos y propiedades del DOM permiten cambiar dinámicamente
valores como src, href, id
y otros comportamientos de los elementos HTML.
67. Clases y estilos en el DOM
JavaScript permite modificar clases y estilos CSS de los elementos para cambiar su apariencia visual y comportamiento dinámicamente.
Modificar estilos y clases en el DOM con JS
68. Crear y eliminar nodos del DOM
Crear y eliminar nodos permite agregar o quitar elementos HTML dinámicamente, construyendo interfaces más interactivas y flexibles.
Crear y eliminar nodos en el DOM con JSEventos en el DOM
69. Eventos en el DOM
Los eventos en el DOM permiten detectar e interpretar las acciones del usuario o del navegador, como clics, teclas, movimientos del mouse y cargas de página.
¿Qué es un evento en el DOM?
70. addEventListener()
addEventListener() permite asociar funciones a eventos
específicos sin sobrescribir otros manejadores, siguiendo buenas
prácticas de JavaScript moderno.
71. Objeto de evento
El objeto de evento contiene información clave sobre el evento ocurrido, como el elemento objetivo, el tipo de evento y propiedades adicionales útiles para su control.
¿Qué es el objeto de evento en JS?
72. Burbujeo y captura de eventos
El burbujeo y la captura describen cómo se propagan los eventos a través del DOM, permitiendo controlar su flujo desde el elemento origen hacia los padres o viceversa.
Burbujeo y captura de eventos en JS
73. Tipos de eventos
JavaScript ofrece múltiples tipos de eventos como eventos de mouse, teclado, formularios, ventana y táctiles, fundamentales para crear interfaces interactivas.
Tipos de eventos en JS
74. Eventos de carga de página
Los eventos de carga permiten ejecutar código en momentos clave del
ciclo de vida de la página, destacándose DOMContentLoaded
y load.
75. Delegación de eventos (Event Delegation)
La delegación de eventos es una técnica que permite manejar múltiples eventos utilizando un solo listener en un elemento padre, aprovechando el mecanismo de burbujeo del DOM para mejorar el rendimiento y la escalabilidad del código.
Delegación de eventos en JS
76. event.preventDefault()
event.preventDefault() es un método que se utiliza para
cancelar el comportamiento por defecto que el navegador ejecuta ante
determinados eventos, como el envío de un formulario o la navegación
de un enlace.
77. event.stopPropagation()
event.stopPropagation() es un método que detiene la
propagación del evento a través del DOM, evitando que el evento
continúe burbujeando hacia elementos padres.
78. Manejo de formularios
El manejo de formularios en JavaScript permite capturar, validar y procesar los datos ingresados por el usuario antes de enviarlos, mejorando la experiencia de uso y evitando recargas innecesarias de la página.
Cómo manejar formularios con JavaScriptPrototipos
79. ¿Qué es el prototipo en JavaScript?
El prototipo en JavaScript es el mecanismo que permite que los objetos hereden propiedades y métodos entre sí, formando la base del sistema de herencia del lenguaje y optimizando el uso de memoria.
Prototipo en JavaScript: ¿Qué es y para qué sirve?
80. Cadena de prototipos
La cadena de prototipos es el proceso mediante el cual JavaScript busca propiedades y métodos en un objeto y, si no los encuentra, continúa la búsqueda en sus prototipos superiores.
Cadena de prototipos en JavaScript
81. Herencia prototípica
La herencia prototípica es el mecanismo mediante el cual los objetos en JavaScript pueden heredar propiedades y métodos de otros objetos a través del sistema de prototipos, permitiendo reutilización de código y estructuras más eficientes.
Herencia prototípica en JavaScript
82. Prototipos nativos
Los prototipos nativos en JavaScript son los objetos base que forman
parte del propio lenguaje, como Object, Array
o Function. A través de sus propiedades prototype,
permiten compartir métodos entre instancias y constituyen la base
del sistema de herencia prototípica.
Clases
83. ¿Qué es una clase
Las clases en JavaScript son una forma moderna de crear objetos y estructurar código utilizando una sintaxis más clara basada en la programación orientada a objetos. Permiten definir propiedades, métodos y facilitar la reutilización del código.
¿Qué es una clase?
84. Declaración de clases
La declaración de clases es la forma más común de definir una clase en JavaScript. Permite crear plantillas para generar objetos con propiedades y métodos, utilizando una sintaxis clara que forma parte de la programación orientada a objetos moderna.
Cómo crear una clase en JavaScript
85. Propiedades de clase
Las propiedades de clase permiten definir datos asociados a una clase o a sus instancias. En JavaScript pueden ser públicas, privadas o estáticas, lo que ayuda a organizar mejor la información y controlar el acceso a los datos dentro de una estructura orientada a objetos.
Propiedades de clase en, públicas, privadas y estáticas
86. Herencia entre clases
La herencia entre clases permite que una clase herede propiedades y
métodos de otra. En JavaScript esto se logra utilizando la palabra
clave extends y el método super(), facilitando
la reutilización del código y la creación de jerarquías de objetos.
87. Operador instanceof
El operador instanceof permite comprobar si un objeto
es instancia de una función constructora o clase determinada,
verificando su relación dentro de la cadena de prototipos.
88. Mixin en JavaScript
Los mixins son una técnica que permite reutilizar funcionalidades en múltiples clases u objetos sin necesidad de utilizar herencia directa, promoviendo un diseño más flexible y modular.
Mixin en JavaScript: qué es y cómo usarloAsincronía en JavaScript
89. Funciones Callback
Las funciones callback se pasan como argumentos a otras funciones y se ejecutan posteriormente, siendo fundamentales en la programación asincrónica.
Guía sobre funciones Callback en JavaScript
90. Promesas
Las promesas en JavaScript son objetos que representan la eventual finalización (o falla) de una operación asíncrona y su valor resultante. Permiten manejar código asíncrono de forma más clara y estructurada que los callbacks tradicionales.
Promesas en JavaScript: ¿Qué son y cómo funcionan?
91. Encadenamiento de promesas
El encadenamiento de promesas permite ejecutar múltiples operaciones
asíncronas de forma secuencial utilizando .then(), evitando
el uso excesivo de callbacks y mejorando la legibilidad del código.
92. Métodos estáticos de promesas
Los métodos estáticos de Promise como all(),
race(), allSettled() y any()
permiten manejar múltiples promesas en paralelo y controlar su
comportamiento según diferentes escenarios.
93. Async/await
async/await es una forma moderna de trabajar con código
asíncrono en JavaScript, permitiendo escribir promesas con una sintaxis
más clara y similar al código síncrono, mejorando la legibilidad y el
manejo de errores.
94. Event Loop, microtasks y macrotasks
El Event Loop es el mecanismo que permite a JavaScript gestionar
la ejecución de tareas asíncronas. Las microtasks (como promesas)
tienen prioridad sobre las macrotasks (como setTimeout),
lo que influye directamente en el orden de ejecución del código.
95. Web APIs
Las Web APIs son interfaces proporcionadas por el navegador que permiten a JavaScript interactuar con funcionalidades externas como el DOM, eventos, almacenamiento, temporizadores y peticiones HTTP, ampliando las capacidades del lenguaje más allá de su núcleo.
Web APIs en JavaScript: ¿Qué son y cómo funcionan?JavaScript en el navegador, comunicación y Web APIs
96. El modelo cliente – servidor
El modelo cliente-servidor es una arquitectura de comunicación donde un cliente realiza solicitudes y un servidor responde proporcionando datos, recursos o servicios. Es la base del funcionamiento de aplicaciones web, sitios de internet y sistemas distribuidos modernos.
El modelo cliente – servidor: ¿Qué es y cómo funciona?
97. Peticiones HTTP
Las peticiones HTTP son solicitudes que un cliente envía a un servidor para obtener, enviar o modificar información. Utilizan métodos como GET, POST, PUT y DELETE, siendo fundamentales para la comunicación entre navegadores, servidores y APIs web.
Peticiones HTTP: ¿Qué son y cómo funcionan?
98. API REST
Una API REST es una interfaz que permite la comunicación entre sistemas mediante el protocolo HTTP, utilizando recursos y métodos como GET, POST, PUT y DELETE. Es uno de los estilos más utilizados para crear servicios web modernos, escalables y fáciles de integrar.
API REST: ¿Qué es y cómo funciona?
99. Manejo de JSON
JSON es un formato de intercambio de datos basado en texto que permite
convertir objetos JavaScript en cadenas y viceversa usando
JSON.stringify() y JSON.parse().
100. XMLHttpRequest
XMLHttpRequest es un objeto tradicional que permite realizar peticiones HTTP al servidor. Aunque hoy en día ha sido reemplazado en gran medida por Fetch, sigue siendo importante para entender la evolución de las solicitudes asíncronas en JavaScript.
XMLHttpRequest en JavaScript: Guía completa
101. Fetch() API
Fetch() es una función moderna de JavaScript que permite realizar peticiones HTTP de forma asíncrona, facilitando la comunicación con servidores para obtener o enviar datos, como APIs REST, reemplazando en gran medida a XMLHttpRequest.
Fetch() en JavaScript: ¿Qué es y cómo usarlo paso a paso?
102. Fetch API con Async/Await
La Fetch API junto con Async/Await permite escribir código asíncrono de forma más clara y legible, eliminando la necesidad de encadenar promesas con .then() y facilitando el manejo de respuestas y errores mediante estructuras como try…catch.
Fetch API en JavaScript con Async/Await: Guía completa
103. Enviar datos con Fetch API
La Fetch API permite enviar datos desde JavaScript al servidor mediante solicitudes HTTP como POST, PUT o PATCH. Es una herramienta moderna, basada en promesas, que facilita la comunicación con APIs y el envío de formularios sin recargar la página.
Enviar datos con Fetch API en JavaScript: Guía completa
104. FormData
FormData es una interfaz que permite construir fácilmente conjuntos de datos clave-valor para enviarlos al servidor, especialmente útil en el envío de formularios, incluyendo archivos, sin necesidad de procesarlos manualmente.
FormData en JavaScript: ¿Qué es y cómo usarlo?
105. LocalStorage y sessionStorage
La Web Storage API proporciona mecanismos para almacenar datos en el navegador mediante localStorage y sessionStorage. Permite guardar información de forma sencilla, ya sea de manera persistente o temporal, mejorando la experiencia del usuario sin necesidad de recurrir al servidor.
Web Storage API: localStorage y sessionStorage en JavaScript
106. Cookies
Las cookies en JavaScript permiten almacenar pequeños fragmentos de información en el navegador del usuario. Son utilizadas para gestionar sesiones, recordar preferencias y realizar seguimiento, aunque tienen limitaciones de tamaño y seguridad frente a otras alternativas modernas.
Cookies en JavaScript: ¿Qué son y cómo funcionan?Git y GitHub (PROFESIONAL)
Ya has adquirido las bases sólidas de JavaScript hasta aquí. Ahora, para potenciar tu perfil y trabajar como un verdadero profesional, el siguiente paso natural es dominar el control de versiones.
Git y GitHub serán tus mejores aliados para organizar tu código, colaborar en equipo y mostrar tus proyectos al mundo. Te recomiendo continuar tu formación ahora mismo con el curso especializado que dicto en nuestra plataforma externa.
Haz clic en el siguiente enlace para comenzar:
HTTP y APIs (BASE WEB)
Fundamental antes de React y backend.
- Cliente / servidor
- Qué es HTTP
- Métodos (
GET,POST,PUT,DELETE) - Status codes
- Qué es una API
- REST (conceptual)
- Consumo de APIs públicas
- Manejo de errores
Framework Frontend (React)
Recién ahora React tiene sentido.
- Qué es React
- Componentes
- JSX
- Props
- Estado
- Hooks:
useStateuseEffect
- Eventos en React
- Formularios
- Render condicional
- Consumo de APIs
- Manejo básico de estados de carga
📌 React es JS + estructura.
Backend básico (Node + Express)
Ahora entendés todo el flujo.
- Qué es Node.js
- Qué es Express
- Crear un servidor
- Rutas
- Middleware
- Request / Response
- Variables de entorno
- CRUD con API REST
- Manejo básico de errores
📌 No hace falta experto.
Bases de datos
Conectar datos reales.
- Qué es una DB
- SQL vs NoSQL
- CRUD
- Tablas / colecciones
- Relaciones básicas
- Consultas simples
Ejemplos:
- PostgreSQL / MySQL
- MongoDB
Autenticación básica
Muy valorado en CV junior.
- Registro
- Login
- Hash de contraseñas
- JWT o sesiones
- Protección de rutas
Resolución de problemas (CONTINUA)
Esto no termina nunca.
- Debugging
- Leer errores
- Console.log con criterio
- Buscar en MDN
- Refactorizar
- Pensar en pasos
📌 Esto define tu valor real.
Proyectos reales (PARALELO)
Mientras aprendés todo:
- 2–3 proyectos propios
- Nada copiado
- Frontend + backend
- DB
- Autenticación
- Deploy
- README claros
📌 Esto es tu CV.
Deploy y entorno real
Mostrar lo que hiciste.
- Deploy frontend (Netlify / Vercel)
- Deploy backend (Render / Railway)
- Variables de entorno
- Producción vs desarrollo
