AI InterviewSearch…Search problems, topics, or pages…Ctrl KGet started

JavaScript

The language behind the browser and Node — values and coercion, closures and this, prototypes, the event loop, promises and async — with exercises judged on a real Node runtime.

16 modules · 96 lessons · ~24 h · exercises run on Node 16

Syllabus

Nothing is locked. Every module has a PDF.

02

Values, types and coercion

The seven primitives and typeof, numbers as doubles with NaN and BigInt, strings and their toolkit, truthiness and the rules behind == and +, the nullish operators, and let/const/var with the temporal dead zone.
0/6 · 91 minPDF
03

Functions, scope and closures

Declarations, expressions and arrows; parameters with defaults and rest; lexical scope and hoisting; closures and their patterns; the five rules for this with call, apply and bind; higher-order functions, composition and currying.
0/6 · 91 minPDF
04

Objects, arrays and destructuring

Object literals and JSON; references, shallow and deep copies, Object.freeze and immutable updates; arrays and the sort trap; the map/filter/reduce toolbox; destructuring and spread in every position.
0/6 · 90 minPDF
05

Prototypes and classes

The prototype chain and delegation; constructor functions and the four steps of new; class syntax with fields, private members, accessors and statics; extends and super; property descriptors and the toString/valueOf/toJSON protocols.
0/6 · 89 minPDF
06

Collections and iteration

Map and Set with their idioms and hand-written algebra; WeakMap, WeakSet and WeakRef; the iteration protocol behind for…of and spread; generators and lazy pipelines; symbols as unique keys and the language's hooks.
0/6 · 85 minPDF
07

Errors and error handling

throw/try/catch/finally precisely; the built-in error types and custom hierarchies with codes and cause; where to catch — boundaries, per-item recovery, retries, result objects; validation and assertions; reading stack traces and decoding the common messages.
0/6 · 85 minPDF
08

Asynchronous JavaScript

The event loop and its two queues; error-first callbacks; promises and the chaining rules; async/await semantics, sequential versus concurrent, return await; the combinators, concurrency pools, timeouts and AbortController; timers, debounce and throttle.
0/6 · 93 minPDF
09

Modules and Node

CommonJS and ES modules, resolution and interop; package.json, npm, semver and lockfiles; the core modules — path, fs, process, events, url, crypto; Buffers and streams with pipeline and backpressure; arguments, environment, exit codes, signals, child processes and workers.
0/6 · 91 minPDF
10

Strings, Unicode, regular expressions and parsing

UTF-16 code units, code points and graphemes; normalisation, collation and Intl formatting; tagged templates; regular expressions from syntax to lookarounds, Unicode properties, escaping and ReDoS; tokenizers and recursive-descent parsers.
0/6 · 91 minPDF
11

Functional patterns

Pure functions and immutability with structural sharing; pipe, compose, currying and data-last design; reduce as the universal fold, recursion limits and trampolines; memoization, once and laziness; Maybe, Result and railway-oriented pipelines.
0/6 · 86 minPDF
12

The DOM and the browser

The DOM tree, selection, attributes versus properties and safe content; event propagation and delegation; fetch, URLs, CORS and timeouts; storage, cookies, history and observers; the rendering pipeline, loading path, vitals, XSS and CSRF.
0/6 · 88 minPDF
13

TypeScript preview

Erased types and inference; any, unknown and never; interfaces, structural typing and discriminated unions; generics, keyof and the utility types; narrowing, type guards and assertions; tsconfig, declaration files, builds and migration.
0/6 · 87 minPDF
14

Modern JavaScript and its tooling

ES2020–2022 in everyday code; the 2023+ additions, TC39 stages, feature detection and spec-faithful polyfills; bundlers, tree-shaking, code splitting and source maps; ESLint, Prettier, test runners and CI; Node, Deno, Bun, edge runtimes and the web-standard core.
0/6 · 86 minPDF
15

Performance and memory

How V8 runs code — tiers, hidden classes, inline caches, elements kinds; benchmarks that lie and profiles that do not; reachability, the generational collector and the leak catalogue; the habits that survive measurement; server latency at the percentile, round trips, caches, pools and event-loop lag.
0/6 · 89 minPDF
16

Interview idioms

The coding-round template and the JavaScript decisions to make before being asked; the twelve algorithm patterns; the idiom sheet and the trap behind each idiom; the reimplementation questions and the spec details that decide them; the theory repertoire in two-sentence answers.
0/6 · 91 minPDF

Learn JavaScript: Free JavaScript Tutorial in 96 Lessons

Learn JavaScript free: 96 lessons in 16 modules, from first programs to interview questions, with exercises judged on Node 16 and a certificate.

  • Language: JavaScript
  • Runtime: Node 16
  • Modules: 16
  • Lessons: 96
  • Reading time: about 24 hours
  • Cost: Free on every plan, with a certificate

The language behind the browser and Node — values and coercion, closures and this, prototypes, the event loop, promises and async — with exercises judged on a real Node runtime.

Syllabus

Module 1: JavaScript and its runtime

What the language is and who defines it, engines and the JIT, Node as a host, reading stdin and writing exact output, statements versus expressions and ASI, strict mode, and a first look at the event loop.

Module 2: Values, types and coercion

The seven primitives and typeof, numbers as doubles with NaN and BigInt, strings and their toolkit, truthiness and the rules behind == and +, the nullish operators, and let/const/var with the temporal dead zone.

Module 3: Functions, scope and closures

Declarations, expressions and arrows; parameters with defaults and rest; lexical scope and hoisting; closures and their patterns; the five rules for this with call, apply and bind; higher-order functions, composition and currying.

Module 4: Objects, arrays and destructuring

Object literals and JSON; references, shallow and deep copies, Object.freeze and immutable updates; arrays and the sort trap; the map/filter/reduce toolbox; destructuring and spread in every position.

Module 5: Prototypes and classes

The prototype chain and delegation; constructor functions and the four steps of new; class syntax with fields, private members, accessors and statics; extends and super; property descriptors and the toString/valueOf/toJSON protocols.

Module 6: Collections and iteration

Map and Set with their idioms and hand-written algebra; WeakMap, WeakSet and WeakRef; the iteration protocol behind for…of and spread; generators and lazy pipelines; symbols as unique keys and the language's hooks.

Module 7: Errors and error handling

throw/try/catch/finally precisely; the built-in error types and custom hierarchies with codes and cause; where to catch — boundaries, per-item recovery, retries, result objects; validation and assertions; reading stack traces and decoding the common messages.

Module 8: Asynchronous JavaScript

The event loop and its two queues; error-first callbacks; promises and the chaining rules; async/await semantics, sequential versus concurrent, return await; the combinators, concurrency pools, timeouts and AbortController; timers, debounce and throttle.

Module 9: Modules and Node

CommonJS and ES modules, resolution and interop; package.json, npm, semver and lockfiles; the core modules — path, fs, process, events, url, crypto; Buffers and streams with pipeline and backpressure; arguments, environment, exit codes, signals, child processes and workers.

Module 10: Strings, Unicode, regular expressions and parsing

UTF-16 code units, code points and graphemes; normalisation, collation and Intl formatting; tagged templates; regular expressions from syntax to lookarounds, Unicode properties, escaping and ReDoS; tokenizers and recursive-descent parsers.

Module 11: Functional patterns

Pure functions and immutability with structural sharing; pipe, compose, currying and data-last design; reduce as the universal fold, recursion limits and trampolines; memoization, once and laziness; Maybe, Result and railway-oriented pipelines.

Module 12: The DOM and the browser

The DOM tree, selection, attributes versus properties and safe content; event propagation and delegation; fetch, URLs, CORS and timeouts; storage, cookies, history and observers; the rendering pipeline, loading path, vitals, XSS and CSRF.

Module 13: TypeScript preview

Erased types and inference; any, unknown and never; interfaces, structural typing and discriminated unions; generics, keyof and the utility types; narrowing, type guards and assertions; tsconfig, declaration files, builds and migration.

Module 14: Modern JavaScript and its tooling

ES2020–2022 in everyday code; the 2023+ additions, TC39 stages, feature detection and spec-faithful polyfills; bundlers, tree-shaking, code splitting and source maps; ESLint, Prettier, test runners and CI; Node, Deno, Bun, edge runtimes and the web-standard core.

Module 15: Performance and memory

How V8 runs code — tiers, hidden classes, inline caches, elements kinds; benchmarks that lie and profiles that do not; reachability, the generational collector and the leak catalogue; the habits that survive measurement; server latency at the percentile, round trips, caches, pools and event-loop lag.

Module 16: Interview idioms

The coding-round template and the JavaScript decisions to make before being asked; the twelve algorithm patterns; the idiom sheet and the trap behind each idiom; the reimplementation questions and the spec details that decide them; the theory repertoire in two-sentence answers.