Effective JavaScript Notes from "Effective JavaScript" by David Herman. Written in ES5 where possible. David Herman's code Fun: Closures Higher-Order Functions Variadic Functions Iterator Protocol Currying toString method of Functions arguments.callee and arguments.caller Store methods on Prototypes Monkey-Patching Lightweight dictionaries Portable and Safe dictionary Arrays and Dictionaries Object.defineProperty Prefer iteration methods to loops Reuse generic array methods on Array-Like objects Prefer Stateless APIs Support Method Chaining Caveat Emptor: If you are using a pirated pdf, there be dragons