JavaScript Core โก Recently updatedUpdated on Jun 30, 2026 โ this content may still be evolving.
JavaScript Core: Topics Not to Miss
Check off each topic before your interview.
Variables & Scope
-
varvsletvsconstโ hoisting, temporal dead zone - Block scope vs function scope
- Global scope pollution and IIFE pattern
- Shadowing variables in nested scopes
Data Types & Coercion
- Primitives: string, number, boolean, null, undefined, symbol, bigint
- Reference types: objects, arrays, functions
-
typeofquirks (typeof null === 'object') -
==vs===and when coercion happens - Truthy/falsy values
-
NaNchecks (Number.isNaNvsisNaN)
Functions
- Function declarations vs expressions vs arrow functions
- Arrow functions: no own
this, noarguments, no constructor - Closures โ what they capture and why they matter
- IIFE use cases
- Higher-order functions (functions taking/returning functions)
- Default parameters and rest/spread (
...args)
this Keyword
- Implicit binding (method call)
- Explicit binding (
call,apply,bind) -
newbinding - Arrow functions inherit
thisfrom enclosing scope - Losing
thisin callbacks (classic interview trap)
Prototypes & OOP
- Prototype chain and
__proto__vsprototype -
Object.create(),new, constructor functions - ES6 classes โ syntactic sugar over prototypes
-
instanceofhow it works - Inheritance patterns
Arrays & Objects
- Mutating vs non-mutating methods (
mapvspush) -
map,filter,reduce,find,some,every - Destructuring arrays and objects
- Spread and rest operators
- Shallow vs deep copy (
structuredClone, JSON trick) -
Object.keys,values,entries,assign,freeze
Async JavaScript
- Callbacks and callback hell
- Promises: states, chaining, error handling
-
async/awaitsyntax and error handling with try/catch -
Promise.all,Promise.race,Promise.allSettled - Event loop: call stack, task queue, microtask queue
-
setTimeoutvssetImmediatevsqueueMicrotask(conceptual)
ES6+ Features
- Template literals
- Optional chaining (
?.) and nullish coalescing (??) - Modules:
import/exportvs CommonJS -
Set,Map,WeakMap,WeakSetbasics - Generators and iterators (awareness level)
Error Handling
- try/catch/finally
- Throwing custom errors
- Unhandled promise rejections
Performance & Patterns
- Debounce vs throttle โ when to use each
- Memoization concept
- Event delegation pattern
- Currying (basic understanding)
Browser APIs (JS side)
-
fetchAPI basics -
localStoragevssessionStorage -
JSON.parse/JSON.stringifypitfalls
Self-test: Can you explain closures, implement bind, predict the output of a setTimeout + Promise chain, and write debounce from scratch in 20 minutes? If not, start with polyfills.md and tricky-output-questions.md.