JavaScript
JavaScript fundamentals, async behavior, browser/runtime concepts, and coding-round exercises.
Study order: Execution → Scope → Closures → this → Prototypes → Arrays and objects → Async → Exercises
- What is JavaScript? — What JavaScript is, why it exists, and where it runs.
- Execution Context and Call Stack — How JavaScript runs code step by step.
- Scope, Hoisting, var, let and const — How variable visibility and declaration behavior work.
- Closures — How functions remember variables from their outer scope.
- this Keyword — How this is decided in different call sites.
- Prototypes and Prototype Chain — How JavaScript objects inherit behavior.
- Arrays, Objects and Common Methods — Working with data using map, filter, reduce, spread, rest, and destructuring.
- Event Loop — Why asynchronous callbacks run after the current call stack.
- Promises and async await — How JavaScript represents and handles future async results.
- Error Handling — try/catch, throwing errors, and handling async failures.
- JavaScript Modules — CommonJS vs ES Modules and how imports/exports organize code.
- Debounce and Throttle — Control how often a function runs during frequent events.
- Classes in JavaScript — Class syntax over prototype-based behavior.
- Shallow Copy vs Deep Copy — How object copying works and where reference bugs come from.
- Memory Leaks in JavaScript — Common ways references stay alive longer than expected.
- Currying and Memoization — Function patterns often asked in interviews and coding rounds.
- Polyfills: map, filter and reduce — Implement common array methods from scratch.
- Implement Debounce and Throttle — Write reusable debounce and throttle helpers.
- Flatten Array and Deep Clone — Handle nested arrays and object copying safely.
- Promise Utilities — Implement Promise.all, sequential execution, retry, and timeout helpers.
- Event Emitter and LRU Cache — Build two common machine-coding round utilities.