This is where I found myself some time ago. I was comfortable with programming fundamentals, jQuery and DOM manipulation but knew there was more to learn.
I've listed the resources in a ascending order, each topic is meant to build on the previous material. You'll find there's overlap between resources. This overlap is intentional, every teacher approaches a topic with their own style. If one person's explanation doesn't quite click, the next author might just fill in the missing gaps.
Note that my review is of the first edition. The book has since published a second edition and like the first one it's available free of charge online.
I did find some of the examples in later chapters to be excessively complicated. Instead of focusing on small programming examples to illustrate topics the book relies on large cumbersome examples. Often I found myself trying to untangle what the program was doing instead of focusing on the programming technique at hand.
These small complaints aside, I found this to be a solid book that built a good foundation for later reading.
As an alternative there's a one hour seminar linked below that's freely available. This video won't cover the subject matter as thoroughly but it will provide a decent follow up to the published book.
I found the author Nicholas C. Zakas' writing to be very approachable while being incredibly thorough, something that's hard to do with a technical book. It may have been because of my previous reading but when I read this book many topics just seemed to "click". If I had to select just one book as my favorite on the list, this would be the one.
The self contained nature of the examples makes this a great reference text when you need a refresher in the future. Having the book handy means you can quickly look up examples of best practices in specific circumstances. It's a great book to have on your shelf or favorite device.
At this point, having read the previous books, you should be familiar with closures, hoisting, recursion, object inheritance, best practices and more. But what's really missing is how to apply these implementation details to larger programming challenges. Inevitably when programming you'll find yourself solving similar problems over and over, this is where patterns come into the picture. Patterns provide proven solutions to common programming problems you'll encounter.
While versions 6 and 7 are still pending there are plenty of resources available today to start learning and preparing for future releases. Here's a few links to get your started: