โ† All topics

๐ŸŒ Interview Prep

Web & Frontend

HTML, CSS layout, the DOM, HTTP, browsers, React, security and accessibility: front-end and full-stack interview staples.

100 questions, most asked first

Ranked by how often each question comes up in real interviews. #1 is the most common.

#1What happens when you type a URL and press Enter?HTTP & APIsMediumFree#6CSS specificity and the cascadeBox modelMediumFree#8What is CORS?Web securityMediumFree#9Cross-site scripting (XSS)Web securityMediumFree#10Cross-site request forgery (CSRF)Web securityMediumFreeUnlock 60 more Web & Frontend questions ยท all 1,200 questions for $39/year (about 11ยข a day)See full access#11How does HTTPS work?Web securityMedium๐Ÿ”’#12Virtual DOM and reconciliationReactMedium๐Ÿ”’#14How does useEffect work?ReactMedium๐Ÿ”’#16Controlled vs uncontrolled inputsReactMedium๐Ÿ”’#18Making a website accessibleAccessibilityMedium๐Ÿ”’#22The critical rendering pathBrowser & performanceMedium๐Ÿ”’#23Reflow vs repaint (layout thrashing)Browser & performanceMedium๐Ÿ”’#24Core Web VitalsBrowser & performanceMedium๐Ÿ”’#26HTTP caching (Cache-Control, ETag)Storage & cachingMedium๐Ÿ”’#27Service workers and PWAsStorage & cachingMedium๐Ÿ”’#28WebSockets vs polling vs Server-Sent EventsHTTP & APIsMedium๐Ÿ”’#29Session cookies vs JWTsWeb securityMedium๐Ÿ”’#30How does "Sign in with Google" work?Web securityMedium๐Ÿ”’#31SSR vs CSR vs SSG (and ISR)ReactMedium๐Ÿ”’#33The rules of hooksReactMedium๐Ÿ”’#34useMemo and useCallbackReactMedium๐Ÿ”’#35Context vs Redux vs other state librariesState managementMedium๐Ÿ”’#36Making a slow React app fastReactMedium๐Ÿ”’#39Why isn't my z-index working?CSS Grid & positioningMedium๐Ÿ”’#42Organizing CSS at scale (BEM, CSS modules, Tailwind)Box modelMedium๐Ÿ”’#44Event bubbling and delegationDOM & eventsMedium๐Ÿ”’#45fetch and error handlingHTTP & APIsMedium๐Ÿ”’#47REST vs GraphQLHTTP & APIsMedium๐Ÿ”’#48Designing API paginationHTTP & APIsMedium๐Ÿ”’#49Idempotent APIs and retriesHTTP & APIsMedium๐Ÿ”’#51HTTP/1.1 vs HTTP/2 vs HTTP/3HTTP & APIsMedium๐Ÿ”’#52How DNS worksHTTP & APIsMedium๐Ÿ”’#54Content Security Policy (CSP)Web securityMedium๐Ÿ”’#56The same-origin policyWeb securityMedium๐Ÿ”’#57Storing passwords safelyWeb securityMedium๐Ÿ”’#58Rate limiting an APIWeb securityMedium๐Ÿ”’#59When and how to use ARIAAccessibilityMedium๐Ÿ”’#60Responsive and optimized imagesBrowser & performanceMedium๐Ÿ”’#61Loading web fonts without hurting performanceBrowser & performanceMedium๐Ÿ”’#62What is hydration?ReactMedium๐Ÿ”’#65Error boundariesReactMedium๐Ÿ”’#66Testing frontend codeReactMedium๐Ÿ”’#68requestAnimationFrameBrowser & performanceMedium๐Ÿ”’#69IntersectionObserverDOM & eventsMedium๐Ÿ”’#70Internationalization (i18n)HTMLMedium๐Ÿ”’#71Progressive enhancementHTMLMedium๐Ÿ”’#74Build a layout with CSS GridCSS Grid & positioningMedium๐Ÿ”’#76flex-grow, flex-shrink and flex-basisFlexboxMedium๐Ÿ”’#77CSS custom properties and dark modeResponsive designMedium๐Ÿ”’#79Implementing infinite scrollDOM & eventsMedium๐Ÿ”’#80Handling file uploadsFormsMedium๐Ÿ”’#81Web Components and the Shadow DOMDOM & eventsMedium๐Ÿ”’#83Cookie security attributesWeb securityMedium๐Ÿ”’#84HTTP security headersWeb securityMedium๐Ÿ”’#85How client-side routing worksBrowser & performanceMedium๐Ÿ”’#88Monitoring a frontend in productionBrowser & performanceMedium๐Ÿ”’#89Optimistic UI updatesState managementMedium๐Ÿ”’#90IndexedDB and offline dataStorage & cachingMedium๐Ÿ”’#94Keyboard navigation and focus managementAccessibilityMedium๐Ÿ”’#95Building an accessible modal dialogAccessibilityMedium๐Ÿ”’#96Performance budgetsBrowser & performanceMedium๐Ÿ”’#97Third-party scripts (analytics, ads, widgets)Web securityMedium๐Ÿ”’#98Walk me through a frontend you builtState managementMedium๐Ÿ”’#99script, async, defer and type=moduleBrowser & performanceMedium๐Ÿ”’#100A search box that doesn't spam the APIDOM & eventsMedium๐Ÿ”’