1. introduction
    1. JavaScript coding patterns are the main topic of the book
    2. console.dir()
  2. essentials
    1. minimize globals
      1. namespacing pattern
      2. self-executing immediate functions
      3. always use var to declare variables
      4. var a = b = 0
        1. a is local but b becomes global
          1. right-to-left evaluation
    2. use a single var statement at the top of your functions
      1. all uninitialized and declared variables are initialized with the value undefined
      2. hoisting
    3. for loops
      1. A problem with this pattern is that the length of the array is accessed on every loop iteration
    4. for-in loops
      1. hasOwnProperty()
        1. var hasOwn = Object.prototype.hasOwnProperty
        2. hasOwn.call(m,p)
    5. switch Pattern