Libros de consulta JavaScript: You Don't Know JS
Usas JavaScript a diario, pero de vez en cuando algo no hace lo que esperabas: this vale otra cosa, una variable existe antes de declararla o una comparación da true sin motivo aparente. You Don’t Know JS es el libro al que se vuelve en esos momentos.
Su título es una provocación: «no sabes JS». La idea es que casi todo el mundo aprende JavaScript lo justo para que funcione, y esta serie va al fondo. Es como un manual de taller frente al libro de instrucciones del coche.
Qué es y quién lo hizo
Lo escribió Kyle Simpson (getify en GitHub), que imparte cursos de JavaScript en vídeo. El texto completo de la serie está publicado en GitHub, donde se puede leer gratis.
- Primera edición: seis libros publicados por O’Reilly entre 2014 y 2015. Ya no se pueden comprar, pero se leen gratis en el repositorio.
- Segunda edición: se autopublica y también se vende en Leanpub y Amazon. El autor la da por terminada y ya no acepta contribuciones.
Qué contiene cada edición
1.ª edición: You Don't Know JS
- Up & Going
- Scope & Closures
- this & Object Prototypes
- Types & Grammar
- Async & Performance
- ES6 & Beyond
2.ª edición: You Don't Know JS Yet
- Get Started
- Scope & Closures
- «The Unbooks»: Objects & Classes (borrador estable) y Types & Grammar (borrador)
- Sync & Async y ES.Next & Beyond: cancelados
La segunda edición se da por terminada, pero dos de sus libros se cancelaron y otros dos se quedaron en borrador. Por eso, para la asincronía (callbacks, promesas, generadores), la referencia de la serie sigue siendo Async & Performance, de la primera edición.
Un ejemplo de lo que explica
Estas tres líneas sorprenden a mucha gente. La serie dedica capítulos enteros a por qué pasan:
console.log(typeof saludo); // undefined: la declaración con var «sube» (hoisting)
var saludo = 'hola';
const conVar = [];
for (var i = 0; i < 3; i++) conVar.push(() => i);
console.log(conVar.map((f) => f())); // [ 3, 3, 3 ]: una sola i para todo el bucle
const conLet = [];
for (let j = 0; j < 3; j++) conLet.push(() => j);
console.log(conLet.map((f) => f())); // [ 0, 1, 2 ]: una j nueva en cada vuelta
Con var, las tres funciones comparten la misma variable i, que al final vale 3. Con let, cada vuelta del bucle crea una variable nueva. Es justo el terreno de Scope & Closures. En español, el hoisting lo tienes en var, let y const y este bucle, en closures en JavaScript.
Cómo sacarle partido
El autor recomienda leer la segunda edición en este orden:
- Get Started: visión general del lenguaje y de cómo pensar en él.
- Scope & Closures: ámbito de las variables y clausuras (funciones que recuerdan las variables de donde nacieron).
- The Unbooks: objetos, clases, tipos y gramática.
Después, ve a Async & Performance de la primera edición para la asincronía. Y úsalo como libro de consulta: cuando algo raro pase en tu código, busca el capítulo que lo explica y reprodúcelo en la consola del navegador o con Node.
Para poner a prueba lo aprendido, revisa las diferencias entre == y === en JavaScript, uno de los temas de Types & Grammar.
Para quién es y lo que conviene saber
Get Started sirve para quien ya ha escrito algo de JavaScript, aunque sea poco. Los demás libros encajan si programas con el lenguaje y quieres entender el porqué, no solo el cómo. Si nunca has programado, mejor empezar por un tutorial guiado.
- Idioma: inglés. El repositorio oficial no ofrece versión en español.
- Precio: gratis en GitHub; de pago en Leanpub y Amazon.
- Licencia: Creative Commons BY-NC-ND 4.0. Puedes leerlos y compartirlos, pero no venderlos ni publicar versiones modificadas.
- Actualidad: la primera edición es de 2014–2015 y no recoge lo que ha llegado al lenguaje después; la segunda, sí en parte.
Dónde leerlo
- Segunda edición: github.com/getify/You-Dont-Know-JS.
- Primera edición: en la rama
1st-eddel mismo repositorio.
Alternativas actuales
- El Tutorial de JavaScript Moderno (javascript.info): gratis, en español y actualizado en octubre de 2026. Más guiado, apto para empezar.
- Guía de JavaScript de MDN: la referencia de la documentación web, también en español.
Cuando domines la base, JavaScript Allongé profundiza en las funciones.
Fuentes
Comprobado el 7 de noviembre de 2026:
- README de la segunda edición: títulos, estado de cada libro, orden de lectura, lectura gratuita, venta, fin de las contribuciones y licencia.
- README de la primera edición: títulos, publicación en O’Reilly (2014–2015) y lectura gratuita.
- Alternativas: es.javascript.info (fecha de la última actualización en su portada) y MDN.
- El ejemplo se ha ejecutado en Node 24.21.0.