- What are closures, and how does JavaScript handle scope?
- How does the event loop work?
- What is the difference between the event queue and the microtask queue?
- How do Promises work? How does async/await simplify them?
- What is hoisting, and how does it apply to variables and functions?
- How does the this keyword behave in different contexts?
- How does prototypal inheritance work in JavaScript?
- What is event delegation, and why is it beneficial?
- What is the difference between debouncing and throttling?
- How does browser storage work (localStorage vs sessionStorage)?
- What are REST API methods, and how do they differ?
- What is OAuth, and how does it work?
- How does SSO work?
- What are the principles of functional programming in JavaScript?
- What are microservices, and when would you use them?
- What is the call stack?
- What is the event queue?
- What is the microtask queue?
- What is the event loop, and why do microtasks run first?
- How do setTimeout and setInterval actually get executed?
- How does the browser interpret TypeScript?
- What is the difference between method overloading and overriding in JavaScript?
- What is the Virtual DOM?
- How does the Virtual DOM differ from the real DOM?
- How do you prevent CLS (Cumulative Layout Shift)?
- How would you debug a production issue with no logs?
- What is Webpack, and why is it used?
- How do you measure web application performance?
- How does tabIndex affect keyboard navigation?
- How would you implement a polyfill for Promise.all?
- How would you implement a polyfill for Promise.any?
- How would you implement Array.prototype.reduce?
- How would you implement a flatten function like Lodash.flatten?
- How do you implement automatic retry logic for Promises?
- How would you throttle Promises by batching them?
- How do you implement a debounce function?
- How do you implement a throttle function?
- How would you run N async callback-based tasks in series?
- What is the output of this tricky JavaScript snippet? (Provide candidate code.)
- When should you use an Object vs a Map?
- What is the difference between PATCH and PUT?
- What is React, and what problem does it solve?
- What are the main features of React?
- What is the difference between class components and functional components?
- What is JSX, and why is it used?
- How does the Virtual DOM work?
- What is reconciliation?
- What is React Fiber?
- Why do keys matter in React, and what happens if they are unstable?
- What are props and state? How do they differ?
- What is a controlled component vs uncontrolled component?
- How does the Context API work?
- How do Redux and Zustand differ from Context?
- How does useState work internally?
- What does useEffect do, and how does cleanup work?
- When would you use useLayoutEffect instead of useEffect?
- What is the difference between useCallback and useMemo?
- What are common use cases for useRef?
- What are custom hooks, and how do you write one?
- What is useReducer, and when should you use it?
- What are the Rules of Hooks?
- What are React.memo and memoization strategies used for?
- What are fragments?
- What are synthetic events in React?
- What are Error Boundaries?
- What are Portals, and when do you use them?
- What are Higher-Order Components (HOCs)?
- What are render props?
- What is React Suspense?
- What is lazy loading in React?
- What is the difference between SSR and CSR?
- How does hydration work in Next.js?
- What are React’s concurrent features?
- What is micro-frontend architecture?
- What is Module Federation?
- What causes memory leaks in React, and how do you detect them?
- How do you measure performance in React applications?
- How do you structure reusable UI components?
- How does React Router work?
- What’s the difference between BrowserRouter and HashRouter?
- How do you pass data between routes?
- How do you handle forms and validation in React?
- What tools do you use for testing (Jest, RTL, Cypress)?
- How would you build a simplified version of useState?
- How would you implement a modal using React Portals?
- How do you build a custom hook for increment/decrement counters?
- How do you send data from child to parent using callbacks?
- How do you send data from child to parent using useRef?
- How would you build a basic login form with validation?
- How would you build a todo list with add, update, delete?
- How would you implement prototypal inheritance manually?
- How do you optimize a React application?
- How does lazy loading work, and where is it beneficial?
- How would you optimize a large table (10k rows)?
- How do you prevent unnecessary re-renders?
- How do you debug a slow component?
- How do you perform bundle optimization?
- What are Web Vitals, and how do you improve them?
- What is the difference between getServerSideProps and getStaticProps?
- How does routing work in Next.js?
- What are the advantages of Next.js over CRA?
- How does hydration work?
- What SSR techniques improve SEO?
- Your React app is lagging—how do you find the root cause?
- A prop updated but the UI didn’t—what might be happening?
- You have two API calls where one depends on the other—how do you handle this?
- Your useEffect runs twice—why?
- Your component unmounts before async data returns—how do you avoid errors?
- A list component re-renders unnecessarily—how do you fix it?
- How do you efficiently render 10,000+ rows?
- Two unrelated components need shared data—how do you design this?
- Your deployed app shows a blank screen—what do you check?
- A component breaks after navigation—how do you debug it?