JavaScript
The ECMAScript language, from values and types up to modules, memory, and the V8 engine. Frontend, backend, and full-stack interviews all test this layer — frameworks and runtimes are built on it.- 26
- chapters
- 150
- questions
- 44
- core
- Covers ECMAScript through ES2026, plus Stage 4 proposals shipping in ES2027; V8 as the reference engine.
01How JavaScript runs6 questions
What JavaScript is made of — the specification, engines, and hosts — how features get added, and the two kinds of source code it runs.- What's the difference between ECMAScript, JavaScript, an engine, and a host?Coming soon
- How does a feature become part of JavaScript?Coming soon
- Is JavaScript compiled or interpreted?Coming soon
- What's the difference between a script and a module?Coming soon
- What does strict mode change, and when is code strict automatically?Coming soon
- What's the difference between a polyfill and a transpiler?Coming soon
02Values and types7 questions
The eight language types, how primitives differ from objects, and how to check what a value is.- What are JavaScript's types?Coming soon
- Why does
typeof nullreturn"object"?Coming soon - What's the difference between
nullandundefined?Coming soon - How can a primitive have methods?Coming soon
- Is JavaScript pass-by-value or pass-by-reference?Coming soon
- What are Symbols for?Coming soon
- How do you reliably check a value's type?Coming soon
03Numbers and BigInt5 questions
How JavaScript numbers work as IEEE 754 doubles, their special values, and when BigInt takes over.- Why is
0.1 + 0.2 !== 0.3?Coming soon - What are
NaN,-0, andInfinity, and how do you test for them?Coming soon - What's
Number.MAX_SAFE_INTEGER, and when do you need BigInt?Coming soon Number()vsparseInt()vs unary+— how do they differ?Coming soon- How do you sum floating-point numbers accurately?Coming soon
04Strings and Unicode5 questions
Strings as UTF-16 code units, what that means for length and iteration, and template literals.- Why is
"😀".length2?Coming soon - How do you iterate over the characters a user sees?Coming soon
- What are lone surrogates, and what do
isWellFormedandtoWellFormedfix?Coming soon - How do tagged template literals work?Coming soon
- How do you compare strings correctly across languages?Coming soon
05Coercion and equality5 questions
How values convert between types, the algorithms behind==and===, and which comparison each API uses.- How does
==decide whether two values are equal?Coming soon - Which values are falsy?Coming soon
- How does an object convert to a primitive?Coming soon
- Why does
[] + {}give"[object Object]"?Coming soon ===vsObject.isvs SameValueZero — which comparison does each API use?Coming soon
06Operators and syntax5 questions
Everyday syntax interviewers probe: destructuring, spread and rest, short-circuiting operators, loops, and semicolons.- How does destructuring work, and where does it throw?Coming soon
- What's the difference between spread and rest?Coming soon
??vs||, and how do optional chaining and logical assignment short-circuit?Coming soonfor…invsfor…ofvsforEach— when do you use each?Coming soon- How does automatic semicolon insertion work, and when does it bite?Coming soon
07Scope, hoisting, and execution contexts9 questions
How bindings are created and found: scope, hoisting, the TDZ, and the spec machinery underneath — execution contexts, Environment Records, and realms.- What's the difference between
var,let, andconst?Coming soon - What is hoisting, really?Coming soon
- What is the temporal dead zone?Coming soon
- What is lexical scope, and how does the scope chain work?Coming soon
- What is an execution context, and what does the call stack hold?Coming soon
- What is an Environment Record?Coming soon
- What is the global object, and how does
globalThisrelate to global variables?Coming soon - What causes "Maximum call stack size exceeded", and do tail calls help?Coming soon
- What is a realm, and why does
instanceof Arrayfail across iframes?Coming soon
08Functions7 questions
The function forms and how they differ, parameters, and the functional techniques interviews ask you to implement.- Function declarations vs expressions vs arrow functions — what actually differs?Coming soon
- How do default and rest parameters work?Coming soon
- What is the
argumentsobject, and why avoid it?Coming soon - What are higher-order functions?Coming soon
- What is an IIFE, and do you still need one?Coming soon
- What are currying and partial application?Coming soon
- Implement
composeandpipe.Coming soon
09Closures5 questions
What a closure is in terms of environments, what it keeps alive, and the patterns built on it.- What is a closure?Coming soon
- Why does a
for (var i…)loop withsetTimeoutprint the same number?Coming soon - What does a closure keep alive in memory?Coming soon
- How do closures create private state?Coming soon
- Implement
debounce,throttle, andonce.Coming soon
10`this`5 questions
Howthisis bound at each call site, why arrows differ, and how to control it.- How is the value of
thisdetermined?Coming soon - Why don't arrow functions have their own
this?Coming soon callvsapplyvsbind?Coming soon- Why does a method lose
thiswhen passed as a callback?Coming soon - Implement
Function.prototype.bind.Coming soon
11Objects and properties7 questions
The property model — keys, attributes, accessors, integrity levels — and copying and comparing objects.- What can be a property key, and in what order are keys listed?Coming soon
- What are property descriptors?Coming soon
Object.freezevssealvspreventExtensions?Coming soon- How do getters and setters work?Coming soon
- How do you list an object's properties?Coming soon
- Shallow vs deep copy — spread,
Object.assign, orstructuredClone?Coming soon - How do you compare two objects for equality?Coming soon
12Prototypes and inheritance6 questions
The[[Prototype]]chain, how lookup and assignment walk it, and whatnewandinstanceofdo.- How does prototypal inheritance work?Coming soon
__proto__vsprototypevsObject.getPrototypeOf?Coming soon- What does the
newoperator do?Coming soon - How does
instanceofwork?Coming soon - When do you use
Object.create(null)?Coming soon - Should you extend native prototypes?Coming soon
13Classes7 questions
Whatclassadds over constructor functions: fields, private names, static blocks,super, and subclassing built-ins.- Are classes just syntactic sugar over prototypes?Coming soon
- How do private fields (
#x) work?Coming soon - Class fields vs methods — where does each live?Coming soon
- What are static members and static initialization blocks?Coming soon
- How does
superwork?Coming soon - How do you extend built-ins like
ArrayandError?Coming soon - Composition vs inheritance — when do mixins make sense?Coming soon
14Arrays7 questions
Array semantics and methods — mutating vs copying, sorting, holes, searching — and the polyfills interviewers ask for.- Which array methods mutate, and what are their copying versions?Coming soon
- How does
Array.prototype.sortwork?Coming soon - Implement
map,filter, andreduce.Coming soon - What are sparse arrays and holes?Coming soon
- Array-likes vs iterables: how do
Array.fromandArray.fromAsyncwork?Coming soon includesvsindexOfvsfindvsfindLastvsat?Coming soon- How do
flatandflatMapwork?Coming soon
15Keyed collections5 questions
Map,Set, and their weak variants, plus grouping and upsert helpers.- When do you use a
Mapinstead of an object?Coming soon - What can a
Setdo in ES2025?Coming soon - What are
WeakMapandWeakSetfor, and why can't you iterate them?Coming soon - How do
Object.groupByandMap.groupBywork?Coming soon - What does
Map.prototype.getOrInsertsolve?Coming soon
16Iterators and generators5 questions
The iteration protocols, generators as pausable functions, lazy iterator helpers, and async iteration.- What are the iteration protocols?Coming soon
- How do generators pause and resume?Coming soon
- What are iterator helpers, and why are they lazy?Coming soon
- What's new for iterators after ES2025?Coming soon
- How do async iterators and
for await…ofwork?Coming soon
17Promises8 questions
Promise states and resolution, chaining, combinators, error propagation, and implementing promises yourself.- What is a Promise?Coming soon
- How does promise chaining work?Coming soon
Promise.allvsallSettledvsracevsany?Coming soon- How do errors propagate through promises, and what is an unhandled rejection?Coming soon
- What do
Promise.withResolversandPromise.trysolve?Coming soon - Implement
Promise.all.Coming soon - Implement a Promise from scratch.Coming soon
- How do you convert a callback API to promises?Coming soon
18Async functions and the event loop7 questions
How JavaScript schedules work — jobs, tasks, and microtasks — howasync/awaitmaps onto promises, and how to run and cancel async work well.- How does the event loop work?Coming soon
- Predict the order:
setTimeoutvs promises vsqueueMicrotask.Coming soon - How does
async/awaitwork under the hood?Coming soon - Sequential vs parallel
await— andawaitinside loops?Coming soon - Is JavaScript single-threaded?Coming soon
- How do you cancel async work?Coming soon
- Implement a concurrency-limited task runner with retry.Coming soon
19Errors and cleanup5 questions
Throwing, catching, and custom errors; why async errors escapetry; and deterministic cleanup withusing.- How do
try,catch, andfinallyinteract withreturn?Coming soon - How do you create custom errors?Coming soon
- Why doesn't
try/catchcatch errors in a callback?Coming soon - What do
usingandawait usingdo?Coming soon - How do you handle errors you didn't catch?Coming soon
20Modules7 questions
How ES modules load and link, how they differ from CommonJS, and the newer module features.- How do ES modules load?Coming soon
- ES modules vs CommonJS — what differs and how do they interoperate?Coming soon
- What happens with circular imports?Coming soon
- How does dynamic
import()work?Coming soon - What does top-level
awaitdo to the module graph?Coming soon - What are import attributes and JSON modules?Coming soon
- What is
import.meta?Coming soon
21Metaprogramming5 questions
Intercepting and customizing language behaviour: Proxy, Reflect, well-known symbols, exotic objects, andeval.- What can a Proxy intercept, and what are its invariants?Coming soon
- What is
Reflectfor?Coming soon - Which well-known symbols let you customize built-in behavior?Coming soon
- What is an exotic object?Coming soon
- Why is
evaldangerous, and what's the difference between direct and indirect eval?Coming soon
22Regular expressions4 questions
Regex flags, groups and lookarounds, performance traps, and the APIs that use patterns.- What do the regex flags do?Coming soon
- How do named groups and lookbehind work?Coming soon
- What is catastrophic backtracking?Coming soon
matchvsmatchAllvsexecvsreplace— andRegExp.escape?Coming soon
23Dates, Temporal, and Intl4 questions
WhyDateis error-prone, how Temporal replaces it, and locale-aware formatting withIntl.- Why is
Datehard to use correctly?Coming soon - What is Temporal, and which type do you use when?Coming soon
- How do you format dates, numbers, and plurals per locale with
Intl?Coming soon - How do you handle time zones correctly?Coming soon
24JSON and binary data5 questions
JSON serialization edge cases, and raw memory:ArrayBuffer, typed arrays, and shared memory.- What does
JSON.stringifydrop or change?Coming soon - How do
JSON.parserevivers work, and what does source text access add?Coming soon - What are
ArrayBuffer, typed arrays, andDataView?Coming soon - What's new in binary data?Coming soon
- What are
SharedArrayBufferandAtomicsfor?Coming soon
25Memory and garbage collection4 questions
Reachability-based garbage collection, how leaks happen and how to find them, and how V8's collector works.- How does garbage collection work in JavaScript?Coming soon
- What causes memory leaks, and how do you find them?Coming soon
- What are
WeakRefandFinalizationRegistry, and why use them rarely?Coming soon - How does V8's generational GC work?Coming soon
26Inside the engine5 questions
How V8 turns source into fast machine code — tiers, hidden classes, inline caches — and what makes it slow down.- What happens between source code and execution in V8?Coming soon
- What are hidden classes and inline caches?Coming soon
- What causes deoptimization?Coming soon
- How does V8 store arrays?Coming soon
- How does V8 represent numbers?Coming soon