A Reintroduction to JavaScript
The "even nicer [array for loop] idiom" is pretty cool:  for (var key = 0, value; value = someArray[key++];) {
    // value is already defined by for loop
    console.log('index: ' + key, 'value: ' + value);
  }

Also, I finally understand closures:"Whenever JavaScript executes a function, a 'scope' object is created to hold the local variables created within that function. It is initialised with any variables passed in as function parameters. This is similar to the global object that all global variables and functions live in, but with a couple of important differences: firstly, a brand new scope object is created every time a function starts executing, and secondly, unlike the global object (which in browsers is accessible as window) these scope objects cannot be directly accessed from your JavaScript code... A closure is the combination of a function and the scope object in which it was created."