JavaScript Documentation
Concise, example-driven JavaScript reference. Read the concept, see the code, then practice it in a Coddy journey.
Start a guided JavaScript journeyPrimeros pasos
- Qué es JavaScriptQué es JavaScript, dónde se ejecuta, para qué sirve y en qué se diferencia de Java y TypeScript. Una introducción clara y sin rodeos para quien empieza.
- Ejecutar JSLas formas prácticas de ejecutar JavaScript en 2026: la consola del navegador, una etiqueta script en HTML y Node.js desde la terminal. Cuándo usar cada una.
- Sintaxis y punto y comaCómo funciona la sintaxis de JavaScript —sentencias, bloques, expresiones— y la verdad sobre el punto y coma, la inserción automática (ASI) y cuándo te puede jugar una mala pasada.
- Modo estrictoQué cambia realmente el modo estricto de JavaScript, cómo se activa y por qué los módulos y las clases ya lo traen puesto de serie.
- ComentariosCómo funcionan los comentarios en JavaScript: `//` para una línea, `/* */` para bloques y los hábitos que hacen que tus comentarios sumen en vez de estorbar.
Variables y tipos
- let, const y varLas tres formas de declarar variables en JavaScript: por qué hoy en día usamos `const` por defecto, `let` cuando toca, y `var` prácticamente nunca.
- Tipos primitivosLos siete tipos primitivos de JavaScript — string, number, bigint, boolean, null, undefined y symbol — y en qué se diferencian de los objetos.
- Strings y templatesCómo funcionan los strings en JavaScript: comillas, backticks, interpolación, texto multilínea y los métodos que usarás de verdad en el día a día.
- Números y BigIntCómo funciona realmente el tipo Number en JavaScript: precisión de coma flotante, MAX_SAFE_INTEGER y cuándo conviene pasarse a BigInt.
- null vs undefinedQué diferencia hay realmente entre null y undefined en JavaScript, cómo comprobar cualquiera de los dos y cuál conviene usar en tu propio código.
- Coerción de tiposCómo convierte JavaScript los valores entre tipos: las reglas implícitas que nos hacen caer a todos, las conversiones explícitas que deberías usar y cuándo entra en juego cada una.
- Igualdad (== vs ===)Cómo funciona la igualdad en JavaScript: comparación estricta frente a comparación con coerción, las rarezas de ==, el caso de NaN y los objetos, y cuándo conviene usar Object.is.
Flujo de control
- OperadoresLos operadores de JavaScript para hacer cálculos, comparar valores, combinar booleanos y asignar — con las trampas que de verdad te hacen perder horas en el día a día.
- if / elseCómo funciona if/else en JavaScript: condiciones, cadenas else if, valores truthy y falsy, y cuándo conviene usar el operador ternario.
- SwitchCómo funciona la sentencia switch en JavaScript: case, break, default, fallthrough y cuándo conviene usar switch en lugar de un if/else encadenado.
- Bucle forAprende cómo funciona el bucle `for` clásico en JavaScript: la cabecera de tres partes, recorrer arrays, usar break y continue, bucles anidados y errores típicos.
- Bucles whileCómo funcionan los bucles `while` y `do...while` en JavaScript, cuándo conviene usarlos en vez de `for` y cómo evitar caer en un bucle infinito.
- for...of y for...inLas diferencias reales entre for...of y for...in en JavaScript: valores frente a claves, arrays frente a objetos y cuándo usar cada uno.
- Truthy y FalsyQué se considera truthy y falsy en JavaScript, la lista completa de valores falsy y cómo funciona la coerción a booleano en el código real.
Iteración
- Iteradores y generadoresCómo funciona el protocolo de iteración de JavaScript, cómo hacer que tus propios objetos sean iterables y por qué los generadores te ahorran tantísimo código.
- SymbolsQué son los symbols en JavaScript, para qué sirven y cómo los well-known symbols como Symbol.iterator permiten integrar tus objetos con el propio lenguaje.
Funciones
- Declarar funcionesCómo declarar funciones en JavaScript: la palabra clave function, parámetros, valores de retorno, hoisting y cuándo usar una declaración en lugar de una expresión.
- Arrow FunctionsCómo funcionan las arrow functions en JavaScript: la sintaxis `=>`, el return implícito, cómo manejan `this` y cuándo conviene usarlas en lugar de `function`.
- Parámetros por defectoCómo funcionan los parámetros en JavaScript: valores por defecto, cuándo se disparan con undefined, orden de evaluación y la diferencia entre parámetros y argumentos.
- Spread y restCómo funciona el operador ... en JavaScript: recoger argumentos con rest, expandir arrays y objetos con spread, y cuándo conviene usar cada uno.
- ClosuresUn closure es una función que recuerda las variables de su entorno. Te explico cómo funcionan los closures en JavaScript con ejemplos y casos reales.
- thisCómo funciona realmente `this` en JavaScript: las cuatro reglas de binding, por qué las arrow functions son distintas y cómo evitar el típico error 'this is undefined'.
- Orden superiorAprende qué son las funciones de orden superior en JavaScript: cómo pasar funciones como argumentos, devolverlas desde otras funciones y dominar map, filter y reduce con ejemplos reales.
Objetos y arreglos
- ObjetosCómo funcionan de verdad los objetos en JavaScript: cómo crearlos, leer y escribir propiedades, añadir métodos y patrones para mantener el código legible.
- ArraysCómo funcionan los arrays en JavaScript: cómo crearlos, indexarlos, usar length, push/pop, la diferencia entre slice y splice, y los bucles que quedan más limpios.
- DestructuringCómo funciona el destructuring en JavaScript: extraer valores de objetos y arrays, renombrar variables, valores por defecto, patrones anidados y parámetros de función.
- Spread de objetosCómo funciona el operador spread con objetos en JavaScript: clonar, fusionar, sobrescribir propiedades y el famoso problema de la copia superficial.
- Métodos de ArrayLos métodos de array que sustituyen a casi todos tus bucles for: map, filter, reduce, find, some y every. Descubre cuáles mutan el array y cuáles devuelven uno nuevo.
- Map y SetCómo funcionan Map y Set en JavaScript, en qué se diferencian de los objetos y arrays clásicos, y cuándo conviene de verdad usarlos.
- JSONCómo convertir objetos de JavaScript a JSON y viceversa con JSON.stringify y JSON.parse, usar replacer y reviver, y evitar los valores que no sobreviven al ida y vuelta.
- Optional ChainingCómo el operador `?.` te permite acceder a propiedades anidadas, arrays y métodos sin que todo explote cuando algo es null o undefined.
- Nullish CoalescingCómo el operador `??` elige un valor por defecto solo cuando algo es `null` o `undefined`, y por qué en la práctica le gana a `||`.
Clases y prototipos
- ClasesCómo funcionan realmente las clases en JavaScript: constructor, métodos, campos de instancia, getters y setters, y el modelo mental detrás de `class`.
- HerenciaCómo funciona la herencia en las clases de JavaScript: extends, super, sobrescribir métodos y cuándo es mejor optar por composición.
- Métodos staticCómo funcionan los métodos y propiedades estáticas en las clases de JavaScript: cuándo usarlas, cómo se comporta `this` y el patrón factory que permiten.
- Campos privadosCómo el prefijo `#` hace que los campos y métodos de una clase sean realmente privados en JavaScript: sintaxis, reglas y por qué el guion bajo se queda corto.
- PrototiposQué son realmente los prototipos en JavaScript, cómo la cadena de prototipos resuelve el acceso a propiedades y cómo la sintaxis `class` se apoya en ese mismo mecanismo.
JavaScript asíncrono
- Event LoopEl modelo mental del JavaScript asíncrono: la call stack, la cola de tareas, la cola de microtareas y cómo el event loop lo coordina todo.
- CallbacksCómo funcionan los callbacks en JavaScript: pasar funciones como argumentos, el patrón error-first y por qué los callbacks anidados empujaron a la comunidad hacia las promesas.
- PromesasCómo funcionan las promesas en JavaScript: sus tres estados, encadenar con then y catch, combinar varias con Promise.all y crear las tuyas con new Promise.
- async/awaitCómo funciona async/await en JavaScript: funciones async, await con promesas, manejo de errores con try/catch y ejecución en paralelo con Promise.all.
- Fetch APIGuía práctica de la Fetch API en JavaScript: peticiones GET y POST, parsear JSON, gestionar errores como toca y cancelar peticiones lentas.
- Errores asyncCómo fluyen realmente los errores en JavaScript asíncrono: try/catch con async/await, .catch en promesas y las trampas que se tragan los fallos en silencio.
Módulos y herramientas
- Módulos ESCómo funcionan los módulos ES en JavaScript: exports nombrados y por defecto, sintaxis de import, import() dinámico y qué diferencia a un módulo de un script clásico.
- CommonJS vs ESMJavaScript convive con dos sistemas de módulos. Te cuento por qué existen los dos y cuándo usar require o import en tus proyectos Node.
- npm básicoCómo funciona npm de verdad: instalar paquetes, npm init, dependencias de desarrollo, actualizar y desinstalar, y el modelo mental detrás de node_modules y el lockfile.
- package.jsonQué hay dentro del package.json: los campos que de verdad importan, cómo funcionan los scripts y cómo los rangos de semver deciden qué versiones instala npm.
- Runtime de NodeQué es el runtime de Node.js, en qué se diferencia del navegador y cuáles son las APIs clave —globals, módulos, process, fs— que hacen posible JavaScript en el servidor.
Errores y depuración
- try/catchCómo funcionan try/catch/finally en JavaScript: capturar errores, el objeto error, relanzar excepciones y cuándo try/catch no es la mejor opción.
- Tipos de erroresLos tipos de error que trae JavaScript de fábrica: qué significa cada uno, cuándo aparecen y cómo leer el mensaje sin andar adivinando.
- Consola y DevToolsLos métodos de consola y las funciones de DevTools que hacen que depurar JavaScript sea mucho más rápido que llenar el código de console.log.
Trabajar con datos reales
- RegexCómo funcionan las expresiones regulares en JavaScript: crear patrones, los métodos esenciales (test, match, replace), flags y grupos de captura con ejemplos reales.
- Fechas y horasCómo funciona de verdad el objeto Date de JavaScript: crear fechas, darles formato, sumar días, lidiar con zonas horarias y los fallos más típicos.
- URL y Query StringsAprende a parsear, construir y modificar URLs en JavaScript con los objetos `URL` y `URLSearchParams`, sin regex y sin bugs raros con la codificación.