
Eloquent JavaScript, 4th Edition
Marijn Haverbeke
- Editorial
- No Starch Press
- Año
- 2024
- Páginas
- ~435
- Nivel
- Básico
De qué trata
Cuarta edición, publicada en 2024 por No Starch Press, del clásico de Marijn Haverbeke, el creador de CodeMirror y ProseMirror. Es una introducción a la programación que usa JavaScript como lenguaje. Está actualizada a la versión del lenguaje de 2024: cubre optional chaining, nullish coalescing, propiedades y campos privados de clase y métodos estandarizados hace poco, y reescribe los capítulos de objetos, módulos y programación asíncrona. Sirve para quien empieza desde cero, aunque su ritmo exigente lo hace especialmente provechoso para quien ya ha programado algo y quiere bases sólidas. Existe una versión web gratuita y oficial en eloquentjavascript.net.
La primera parte trata el lenguaje: valores, tipos y operadores, estructura de un programa, funciones, objetos y arrays, funciones de orden superior, clases y prototipos, errores y depuración, expresiones regulares, módulos (ES Modules y paquetes de npm) y programación asíncrona con promesas y async/await. La segunda parte lleva JavaScript al navegador: el DOM, la gestión de eventos, el dibujo con Canvas, HTTP con fetch y los formularios. La tercera parte presenta Node.js: el sistema de módulos, el sistema de archivos y la creación de un servidor HTTP.
Cada capítulo termina con ejercicios, que se pueden resolver en el sandbox interactivo de la web, y cinco capítulos son proyectos completos que integran lo aprendido. Es de los mejores libros para aprender a pensar como programador, con un enfoque elegante y funcional. Ten en cuenta que su densidad puede abrumar a un principiante absoluto, y que no trata frameworks (React, Vue), TypeScript ni herramientas de build. Esa ausencia es deliberada: su objetivo es dominar el lenguaje y la plataforma web.
- JavaScript moderno
- Funciones de orden superior
- Objetos y clases
- Expresiones regulares
- Módulos
- Programación asíncrona
- DOM
- Eventos
- Canvas
- HTTP y formularios
- Node.js
¿Cómo enseña?
Teoría + práctica
- ✓ Incluye ejercicios
- ✓ Incluye proyectos
Proyectos
A Robot
Simulación de un robot que reparte paquetes en un pequeño pueblo modelado como un grafo. Sirve para practicar estructuras de datos, estado inmutable y algoritmos de búsqueda de rutas.
A Programming Language
Construcción de un lenguaje de programación pequeño (Egg), con su analizador sintáctico y su evaluador escritos en JavaScript, para entender cómo se interpreta el código.
A Platform Game
Juego de plataformas para el navegador con niveles, física sencilla, detección de colisiones y control por teclado, dibujado con el DOM.
A Pixel Art Editor
Editor de dibujo pixel a pixel sobre Canvas, con herramientas de dibujo, selección de color, deshacer y guardado y carga de imágenes, organizado en componentes con un estado de aplicación.
Skill-Sharing Website
Aplicación web con un servidor HTTP en Node.js y un cliente en el navegador para proponer y comentar charlas, con actualizaciones en tiempo real mediante long polling.

