ProAdvancedInterview prep

JavaScript Advanced

The parts of the language that still catch experienced developers: prototypes, proxies, generators, microtask ordering and float arithmetic. Every item is a snippet whose real output is the answer.

Questions90
Topics10
Answering time68 minutes
At five a day18 days
LevelAdvanced

Who it is for

For someone confident in the language who wants the traps, the edge cases and the interview questions.

You will get the most out of it if you have written JavaScript recently enough to read it without effort, and have been surprised by it at least once. If you are picking the language up for the first time, start with JavaScript Basics and come back to this one.

It is also built for interview preparation: the questions are the ones that get asked because they separate people who have read the documentation from people who have hit the behaviour in production.

How long it takes

90 graded questions at roughly 45 seconds each is about 68 minutes of answering in total.

At the default five questions a day, and because the session mixes in your other courses, expect around 18 days — call it 3 weeks — to see everything once, plus a few weeks of thinning reviews after that before it is all mastered.

A question is mastered on the third correct answer, once the gap between reviews has grown past a week — so a course cannot be finished in a weekend however long you sit with it.

Question mix

  • 80 multiple choice
  • 10 concept cards
  • 10 matching questions

Syllabus

What you will be asked about

  1. 01

    Prototypes & the Chain

    Trace property lookup, shadowing and prototype mutation through a real chain.

  2. 02

    Class Semantics & Private Fields

    Predict construction order, static inheritance and private-field behaviour in class hierarchies.

  3. 03

    Generators & Iterators

    Drive a generator by hand and predict what two-way communication, delegation and early exit produce.

  4. 04

    Symbols & Well-Known Protocols

    Use symbol keys as hidden state and recognise the well-known symbols that rewire built-in operators.

  5. 05

    Proxy & Reflect

    Predict which trap an operation reaches, and where proxy invariants and receivers bite.

  6. 06

    Descriptors & Accessors

    Read a property descriptor and predict how assignment, copying and freezing behave.

  7. 07

    Microtask Ordering Edge Cases

    Count the ticks: interleave await, then-chains, thenables and nextTick without guessing.

  8. 08

    Rare Syntax & Operators

    Read the corners of the grammar: labels, the comma operator, holes, tags and short-circuit assignment.

  9. 09

    Weak Collections & Object Identity

    Choose between Map, WeakMap and WeakRef by reasoning about key identity and reachability.

  10. 10

    Numeric Precision, BigInt & Object.is

    Predict float rounding, integer-safety limits, bitwise truncation and the three equality relations.

8 more topics, and all 90 questions

JavaScript Advanced is a Pro course. One subscription opens it and every other course in the catalogue, including the ones still being written.

See pricing Find a free course

A question from this course

Prototypes & the Chain

What two values are logged?

const proto = {
  set x(v) { this._x = v * 2; }
};
const o = Object.create(proto);
o.x = 5;
console.log(o._x, Object.hasOwn(o, 'x'));
  • A10 true
  • B10 false
  • C5 true
  • Dundefined false
Show the answer

B 10 false

An inherited setter intercepts the assignment, so no own x is ever created on o - Object.hasOwn(o, 'x') is false. The setter's this is still o, which is why _x lands on the instance as 10.

The rest of the track

JavaScript at every depth

Start JavaScript Advanced
in tomorrow’s session.

Enrol and this course joins your daily five, mixed in with everything else you are studying — 90 questions spread over about 18 days rather than dropped on you at once.

Browse the catalogue