First of all, for tutorials, I really liked this one:
http://jqfundamentals.com/chapter/javascript-basics
it gets jquery specific in the end but the start with Javascript basics is very good.
I agree that its though to find things related to memory use and performance - I am pretty bad at that myself :) That said, a rule of thumb is that whenever you evaluate an object literal ( "{...}") or function expression ( "function(){ ... }") then you will will create a new object/function instance that will have to be garbage collected in the future. As already mentioned, you get around this by declaring the function beforehand (assigning it to a variable) and then reusing that reference in the future.
As for code reference, stay away from w3schools - they suck and only dominate search rankings because of aggressive SEO. I recommend sticking to MDN, or, if you are feeling adventurous, checking out the Ecmascript spec (dunno how good these are with the newfangled game stuff though)
http://www.w3fools.com/
http://es5.github.io/
For callbacks there are two things I have to say. First of all, some people used to OOP take a while to get used to callbacks instead of classes + method passing, but after you understand whats going on its hard to go back to living without first-class functions. Secondly, if you have complex code with lots of callbacks calling other callbacks then its going to be ugly no matter what you try to do (taming callback hell is a little industry of its own...). Learning about continuation passing style helps understand things a bit better though.
Finally, one thing you didn't mention but that its good to point out just in case: if you dont already know how to use the debugger in your favorite browser yet, do it ASAP. Use console.log instead of alert for when you want to do "printf debugging" and never use document.write unless you really know what you are doing. I see people doing these last two all the time and its kind of sad...