Advanced JavaScript

The real-pro aspects of JavaScript

Intermediate
9 hrs 57 mins
30 chapters

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.

Prerequisites

  • JavaScript

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

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. 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. 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. 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.

  4. 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.

  5. 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.

  6. 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.

FAQs

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

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.

Write to me at bilal@codeguage.com.

Let's get learning!

Start learning

Recent courses

Pre-release

Node.js

A runtime environment executing JavaScript outside the browser