- What are closures in JavaScript? Provide an example.
- How does variable hoisting work in JavaScript?
- What’s the difference between var, let, and const in terms of scope?
- Explain the Temporal Dead Zone (TDZ).
- How does the event loop work in JavaScript?
- What is the difference between microtasks and macrotasks?
- Explain the difference between Promise.all, Promise.allSettled, Promise.race, and Promise.any.
- How does async/await work internally?
- What is prototypal inheritance?
- What is the difference between
__proto__andprototype? - How does
Object.create()work?
- How does JavaScript handle garbage collection?
- What are memory leaks in JavaScript, and how do you prevent them?
- What’s the difference between deep copy and shallow copy?
- What is currying, and how does it work?
- What is the difference between
.map(),.filter(), and.reduce()? - What are pure functions, and why are they important?
- How does the V8 engine work?
- What is JIT compilation in JavaScript?
- Explain hidden classes in V8 and how they affect performance.
- What is event delegation, and how does it improve performance?
- What is the difference between
e.stopPropagation()ande.preventDefault()? - How does debouncing and throttling work?
- What’s the difference between Object.freeze(), Object.seal(), and Object.preventExtensions()?
- How do you create an immutable object in JavaScript?
- What are symbols, and when should you use them?
- What’s the difference between CommonJS and ES6 Modules?
- Explain the Revealing Module Pattern.
- How do you implement the Singleton Pattern in JavaScript?
- What is the Proxy object in JavaScript, and how do you use it?
- What is the purpose of the Reflect API?
- How does
defineProperty()work?