
Effective JavaScript
David Herman
- Editorial
- Addison Wesley
- Año
- 2012
- Páginas
- ~228
- Nivel
- Intermedio
De qué trata
Libro de la serie Effective de Addison-Wesley en el que David Herman, que formó parte del comité de estandarización de JavaScript en Ecma (TC39) y trabajó en Mozilla Research, reúne 68 recomendaciones concretas para escribir un JavaScript más predecible, fiable y fácil de mantener. Se basa en ECMAScript 5 (con alguna mirada a lo que vendría después) y está pensado para programadores de nivel intermedio que ya usan el lenguaje a diario y quieren entender de verdad su semántica, no para quien empieza desde cero.
Las recomendaciones se agrupan en siete capítulos. El primero repasa las trampas básicas del lenguaje: qué versión de JavaScript usas, los números de coma flotante, las conversiones implícitas, == con tipos mezclados, la inserción automática de punto y coma y las cadenas como secuencias de unidades de 16 bits. Después vienen el alcance de variables (objeto global, closures, hoisting, IIFE, with y eval), el trabajo con funciones (llamadas a función, método o constructor, funciones de orden superior, call, apply, bind, arguments y currying), objetos y prototipos (prototype, Object.getPrototypeOf, __proto__, constructores que funcionan con o sin new, datos privados con closures, herencia y monkey-patching), arrays y diccionarios (contaminación de prototipos, hasOwnProperty, for...in frente a métodos de iteración), diseño de librerías y APIs (objetos de opciones, tipado estructural, encadenamiento de métodos) y, por último, concurrencia: cola de eventos, callbacks anidados, errores perdidos y promesas.
No hay proyectos ni ejercicios guiados. Cada recomendación es un ensayo breve con ejemplos de código y un resumen de las ideas clave, lo que lo hace ideal para leerlo por partes o consultarlo. Su gran aporte es explicar por qué el lenguaje se comporta como lo hace, y gran parte de eso sigue vigente. Eso sí, es anterior a ES2015: no trata let/const, clases, módulos, funciones flecha ni async/await, y algunos consejos (como los relativos a arguments o a las IIFE) hoy tienen alternativas más modernas. Conviene leerlo con eso en mente y, si se puede, complementarlo con un libro de JavaScript moderno.
- ECMAScript 5
- Coerción de tipos
- Alcance de variables
- Closures
- Hoisting
- Funciones de orden superior
- call, apply y bind
- Prototipos
- Diseño de APIs
- Event loop
- Callbacks
- Promesas
¿Cómo enseña?
Teórico
- ✗ Sin ejercicios
- ✗ Sin proyectos

