Advanced JavaScript

JavaScript has evolved enormously over the years into a sophisticated language, bundled with numerous advanced features.



Course Duration

10 hrs 1 min








  • JavaScript

    This course explores the advanced aspects of JavaScript, so obviously it's a clear requirement.

Course overview

Since its inception in 1995, JavaScript has grown to become one of the most popular programming languages around the globe and also to become a highly complex beast. With the adaptation of ECMAScript 6 (a.k.a. ECMAScript 2015), the language got a massive overhaul and, since then, has continued to become better and better than ever before. Added to this the innovations of the browser landscape, it now clearly means that covering all aspects of JavaScript in one single course is close to impractical.

In this course, we explore the advanced side of JavaScript. We cover such things as intersection observers; promises, and how they simplify asynchronous code; file-handling APIs; buffers and working with binary data; web storage, and how to leverage it in place of cookies to store data on the client; and much more.

All modern day code heavily uses at least one of these ideas and, likewise, it's vital for a JavaScript developer to have a stronghold on these aspects of the language to ensure a smooth developer experience.

Learning outcomes

  1. The sixth primitive type in JavaScript i.e symbols, and how to work with them to get into some internal operations of the language.
  2. The IntersectionObserver API and how to use it in place of scroll events to monitor the appearance of elements into a root element.
  3. What are iterables and how to iterate over them in a very convenient way using the for...of loop.
  4. What are iterators and how to use them to govern the behavior of iteration done by for...of, or otherwise manually.
  5. How to use generators to define infinite sequences and use lazy evaluation to save resources when computing large collections; and even how to combine the results of multiple generators by means of delegation.
  6. How to obtain File objects from file input elements and the drag..drop API; and then retrieve useful information from these File objects.
  7. The ways in which to process File objects by creating objects URLs for them or by reading them using the FileReader API.
  8. What are blobs in JavaScript and how to use the Blob API to create file-like objects.
  9. What's meant by the term 'callback hell' and how the Promise API is provided to mitigate it.
  10. How to shift from storing client-only data in cookies to the Storage API - made accessible via two global properties: localStorage and sessionStorage.

and a lot more...

Table of contents

  1. Foundation

    Here we'll get our hands firm on the basics of JavaScript and some of the simpler concepts of advanced JavaScript before moving on to specifically target a couple of its common APIs.
  2. Modules

    In this unit, we'll take a look into the standard module system in JavaScript, known as ECMAScript modules. We'll explore the import and export keywords and how to work with dynamic imports using the import() function.
  3. Intersection Observer

    In this unit, we shall cover the IntersectionObserver API to monitor elements entering into a root element.
  4. Iteration

    In this unit, we shall discover modern iteration in JavaScript. This includes the for...of loop, iterables and iterators. After that, we'll move over to consider generator functions and how they extend iteration capabilities.
  5. File APIs

    This unit is dedicated to explore file handling capabilities of JavaScript. Specifically we'll be seeing the File, Blob and FileReader APIs in detail and even the concept of object URLs.
  6. Promises

    Promises are meant to simplify asynchronous programming in JavaScript. In this unit we shall understand how to create basic promises, how to chain promises and finally how to handle errors occuring in promises.
  7. Buffers

    This whole unit is dedicated to teaching you fixed-type arrays in JavaScript known as typed arrays, and how they are stored internally in buffers.
  8. Storage

    In this unit we will cover an extremely useful concept of JavaScript i.e storage. We'll see the two mechanism of storing data locally on the client - localStorage and sessionStorage.


  • What if I get stuck somewhere in the course?

    If you're having a hard time understanding a given concept in the course, feel free to reach out to me at, describing the issue you're facing. I'll try my level best to help you out.

  • Some important topics are missing from the course. Why is that so?

    The courses on Codeguage are released while they are still under construction so that learners can get early previews. As I continuously work on adding more and more content to the courses, if a given topic isn't covered today, there's a high chance that it's already under way and will show up very soon. You can follow Codeguage on Twitter to be updated with all the latest content releases.

  • How can I ask any general questions related to the course's content?

    Write to me at

It's different the 'Codeguage way'


When you have a robust foundation, with the fundamentals crystal-clear, your mind will intrinsically get that ability to handle any kind and level of complexity.


With a comprehensive resource that covers literally every aspect of a given topic, your time is spent practicing the learnt concepts, not resolving confusions and basic questions.


Coding is a detailed craft. Likewise, any resource trying to teach it in any way should be detailed as well, or else people will have to acquire those integral details from different places in a fragmented and haphazard manner.


Structure is vital to an intuitive learning experience of a given resource. Without structure, the right concepts get introduced at the wrong times, ultimately leading to confusion and breaking the desired flow of comprehension.

Let's start the learning!