For the last two, I must confess that I usually just look through the W3C specs and the Mozilla developer manuals, which is sub-optimal. Anyone care to recommend some good ones?
People always forget (myself included) that JavaScript really is a powerful language in its own right. (At a previous company, we wrote apps in pure JavaScript which was then compiled to Java bytecode.) But having just JavaScript in a browser is useless. What makes JavaScript so powerful in the browser is that browsers expose access to their underlying internals through the DOM.
This is why you really need three books. The first to learn JavaScript by itself properly. The second to see how browsers expose the DOM to JavaScript. The third to see what neat stuff you can do w/ the combination.