---
title: "Advanced JavaScript — ZudoJS Academy"
description: "How JavaScript really works: this and prototypes, the built-in objects, iterators, generators and symbols, functional techniques, the event loop and asynchronous code in depth, memory, error design and module systems."
source: https://zudojs.oyinlola.site/learn/javascript-advanced
---

LEVEL 4 · JAVASCRIPT

Course Core

# Advanced JavaScript

How JavaScript really works: this and prototypes, the built-in objects, iterators, generators and symbols, functional techniques, the event loop and asynchronous code in depth, memory, error design and module systems.

- **17 lessons**
- **15 h** to read and try
- **Before this:** [JavaScript fundamentals](https://zudojs.oyinlola.site/learn/javascript)

0 of 17 lessons done

[Start lesson 1 →](https://zudojs.oyinlola.site/learn/js-this)

## When you finish, you can

- Explain what this is in any call, and how the prototype chain resolves a property
- Choose between inheritance and composition
- Use strings, numbers, BigInt, dates, regular expressions, Map, Set and weak collections correctly
- Write iterators, generators and custom protocols with symbols
- Predict the order in which synchronous code, microtasks and timers run
- Cancel asynchronous work and limit concurrency
- Find and fix a memory leak
- Design which errors are handled and which propagate

**You build:** A tested utility library: an iterator toolkit, a retrying fetch with cancellation and a memory-safe cache

MODULE 1

## The object model

1. [1**this in depth**Predict this in every kind of call, fix a lost this with call, apply, bind and arrow functions, and write your own bind and bindAll helpers.50 min](https://zudojs.oyinlola.site/learn/js-this)
2. [2**Prototypes in depth**Follow the prototype chain step by step, rewrite new, instanceof and extends yourself, see what a class becomes, and block prototype pollution.55 min](https://zudojs.oyinlola.site/learn/js-prototypes)
3. [3**Inheritance and composition**See why subclasses break when their parent changes, then build behaviour from small parts with wrappers, delegation, mixins and functions, and use private fields well.55 min](https://zudojs.oyinlola.site/learn/js-composition)

MODULE 2

## Built-in objects

1. [4**Strings in depth**Measure, cut, normalise, search, sort and format real product names with accents and emoji, using code points, grapheme clusters, Intl.Segmenter and Intl.Collator.55 min](https://zudojs.oyinlola.site/learn/js-strings)
2. [5**Numbers in depth**Learn how IEEE-754 doubles store numbers, where precision ends, how to round, parse and format naira amounts exactly, and when to reach for BigInt.55 min](https://zudojs.oyinlola.site/learn/js-numbers)
3. [6**Collections in depth**Choose between Map, Set, WeakMap, WeakSet and WeakRef by how they compare keys, keep order and hold memory, and build a bounded cache and object-keyed memoisation.50 min](https://zudojs.oyinlola.site/learn/js-collections)
4. [7**Dates and time zones**Understand what a Date really stores, parse and format instants safely across Africa/Lagos and UTC, do calendar arithmetic, and store dates correctly in APIs.55 min](https://zudojs.oyinlola.site/learn/js-dates)

MODULE 3

## Iteration and symbols

1. [8**Iterables and iterators**Learn the protocol behind for...of, spread and destructuring, then write your own iterables: a number range and an API paginator that fetches pages lazily.50 min](https://zudojs.oyinlola.site/learn/js-iterators)
2. [9**Generators**Write iterators as ordinary loops with function* and yield, then stream order lines lazily from a paged API into a CSV export, with cleanup that always runs.50 min](https://zudojs.oyinlola.site/learn/js-generators)
3. [10**Symbols**Use symbols as keys that never clash, plug your objects into the language with well-known symbols, and build a Money type that refuses to add naira to dollars.45 min](https://zudojs.oyinlola.site/learn/js-symbols)

MODULE 4

## Functional JavaScript

1. [11**Functional JavaScript**Turn a tangled checkout function into a pipeline of small pure steps, with immutable updates, composition, currying and partial application, and test every step.55 min](https://zudojs.oyinlola.site/learn/js-functional)

MODULE 5

## Asynchronous JavaScript in depth

1. [12**Promises in depth**See exactly what a promise guarantees, how chains pass values and errors along, how thenables work, and how to turn a callback SDK into promises safely.55 min](https://zudojs.oyinlola.site/learn/js-promises)
2. [13**Combining promises**Run independent work in parallel with Promise.all, allSettled, race and any, put a time limit on a slow provider, and choose sequential, parallel or batched.50 min](https://zudojs.oyinlola.site/learn/js-promise-combinators)
3. [14**The event loop**Build an exact model of the call stack, task queue and microtask queue, solve ordering puzzles with it, and keep long jobs from starving timers and requests.50 min](https://zudojs.oyinlola.site/learn/js-event-loop)
4. [15**Concurrency and cancellation**Limit how many jobs run at once with a pool, cancel unneeded work with AbortController, and find and fix the race conditions of concurrent async code.60 min](https://zudojs.oyinlola.site/learn/js-concurrency)

MODULE 6

## How JavaScript runs

1. [16**How JavaScript runs**Follow your code through the engine, from text to tokens, syntax tree, bytecode and optimized machine code, then read call stacks and async stack traces with confidence.50 min](https://zudojs.oyinlola.site/learn/js-execution)

MODULE 7

## Errors and modules in depth

1. [17**Designing error handling**Decide which layer handles each error and which lets it pass, chain causes, collect failures with AggregateError, and build a payment flow that never loses an error.55 min](https://zudojs.oyinlola.site/learn/js-error-design)

## Course checkpoint

Prove you can move on. The checkpoint picks 20 questions at random from every lesson in this course. Get 16 right to pass. Your result is saved in this browser only.
