You have learned the programming fundamentals using the latest JavaScript syntax to create dynamic web apps, but you want to do more! With Intermediate JavaScript, you will understand how to incorporate JavaScript in bigger and more complex web apps using concepts such as classes, promises, async/await, and requests. By the end of this course, you will understand how JavaScript runs in the browser, including currying, hoisting, and concurrency. You will also learn how to structure large-scale web apps using classes and modules, and how to increase the efficiency of your apps using asynchronous functions.