This is a book about JavaScript, programming, and the wonders of the digital. You can read it online, and a paper version is being worked on.

Marijn Haverbeke

Marijn Haverbeke is a programming language enthusiast and polyglot. He's worked his way from trivial BASIC games on the Commodore, through a C++ phase, to the present where he mostly hacks on database systems and web APIs in dynamic languages. He recently won the JS1K—JavaScript demo in 1024 bytes—contest, and is the author of a wide range of open-source software.

  • Introduction
  • (Part 1: Language)
  • Values, Types, and Operators
  • Program Structure
  • Functions
  • Data Structures: Objects and Arrays
  • Higher-order Functions
  • The Secret Life of Objects
  • Project: Electronic Life
  • Bugs and Error Handling
  • Regular Expressions
  • Modules
  • Project: A Programming Language
  • (Part 2: Browser)
  • JavaScript and the Browser
  • The Document Object Model
  • Handling Events
  • Project: A Platform Game
  • Drawing on Canvas
  • HTTP
  • Forms and Form Fields
  • Project: A Paint Program
  • (Part 3: Node)
  • Node.js
  • Project: Skill-Sharing Website