JavaScript Guide: types, scopes, objects oriented, this keyword, prototype based, ES6 classes, asynchronous JavaScript.