- Closures in JavaScript
- Event Loop: Microtasks vs Macrotasks
- The this keyword in JavaScript
- Prototypes and prototypal inheritance in JavaScript
- Promises in JavaScript and promise methods
- What is async/await in JavaScript
- scope in JavaScript: types and working principles
- Debounce and throttle in JavaScript
- Execution context in JavaScript
- Call, apply and bind methods in JavaScript
- hoisting in JavaScript
- Promise.all, promise.race, promise.allsettled, promise.any
- Differences between var, let and const
- What is the call stack in JavaScript?
- Differences between arrow Function, Function declaration and Function expression
- OOP in JavaScript (Object-oriented programming)
- Data types in JavaScript
- Lexical environment in JavaScript
- What is garbage collector in JavaScript?
- Event delegation
- Event propagation in JavaScript and its phases
- Type coercion in JavaScript (implicit vs explicit)
- What are higher-order functions in JavaScript (hof)
- Pure functions and side effects in JavaScript
- Mutating and non-mutating Array methods in JavaScript
- How to copy an Object in JavaScript?
- JavaScript modules: import/export, CommonJS vs es modules
- What is code splitting?
- Spread and REST operators in JavaScript: differences and examples
- Difference between primitives and non-primitives in JavaScript