Declaring variables with let, const
Scope differences between let, const, var
Why you shouldn’t use var keyword
Using template strings to interpolate data
Template strings with functions
How hoisting works in JS
Arrow functions & scope explained
Differences between the rest & spread operators
Objects and Classes
Getters & Setters in Classes
Synchronous vs Asynchronous Programming
Callback Functions in JavaScript
Explanation of Callback Hell
Introduction to Promises, Promise All / Race
AJAX requests with Promises
Using the Fetch API, Async & Await Syntax
Iterators and Generators
Generators with Promises
Maps, Sets, Proxies explained
JavaScript Modules, AMD vs CommonJS
Babel, Transpiling, Staying On Top of ES