Eloquent javascript : a modern introduction to programming - Haverbeke, Marijn (No Starch Press, 2015)
This thoroughly revised edition reflects the current state of JavaScript and Web browsers, with new material, such as a chapter on code performance in JavaScript, and expanded coverage of recursion and closures. Haverbeke immerses readers in example code from the start, while exercises and full-chapter projects give you hands-on experience with writing their own programs. Readers will build projects such as an artificial life simulation, a simple programming language, and a paint program. In addition to learning essential elements of programming, including syntax, control, and data, they will learn how to: organize and clarify code with object-oriented and functional programming techniques; script the browser and make basic Web applications; use the DOM effectively to interact with browsers; and harness Node.js to build servers and utilities. --