frontend-interview-questions
Open-source frontend interview questions & handbook — 3,000+ questions: frontend system design, machine coding, JavaScript, React, CSS, DSA & performance. Fully-worked solutions, company-wise guides (Google, Meta, Amazon, Netflix...) & an FAQ. Prep for SDE-2, Senior, Staff & FAANG.
File Explorer
- deploy-site.yml
- assets-meta-seo.md
- forms-inputs.md
- how-the-web-works.md
- html-semantics.md
- README.md
- accessibility-basics.md
- browser-storage-cookies-localstorage-indexeddb.md
- caching-http-browser.md
- character-encoding-utf-8-unicode.md
- cookies-attributes-samesite.md
- cors.md
- critical-rendering-path.md
- dom-manipulation-traversal.md
- event-handling-bubbling-delegation.md
- event-loop.md
- fetch-ajax.md
- forms-validation.md
- geolocation-notifications-clipboard-apis.md
- how-the-web-works-request-render.md
- http-fundamentals.md
- https-tls.md
- internationalization-i18n-basics.md
- performance-basics-core-web-vitals.md
- progressive-enhancement.md
- progressive-web-apps-pwa.md
- rendering-strategies-csr-ssr-ssg-isr.md
- responsive-design.md
- rest-json-apis.md
- security-basics-xss-csrf-overview.md
- semantic-html.md
- seo-fundamentals.md
- shadow-dom-web-components.md
- the-dom.md
- virtual-dom.md
- web-apis-intersection-resize-mutation-observer.md
- banner.svg
- README.md
- dom-events.md
- platform-apis-isolation.md
- README.md
- rendering-pipeline.md
- storage-cookies.md
- the-event-loop.md
- blink-rendering-engine.md
- browser-high-level-architecture-multi-process.md
- compositing-the-compositor-thread.md
- critical-rendering-path-overview.md
- css-parsing-the-cssom.md
- event-loop-browser.md
- garbage-collection-mark-sweep.md
- hidden-classes-inline-caches.md
- html-parsing-the-dom-tree.md
- main-thread-vs-compositor-thread.md
- memory-leaks-detection.md
- memory-management.md
- microtasks-vs-macrotasks.md
- paint-layers.md
- process-thread-model-renderer-gpu-network.md
- rasterization-the-gpu.md
- render-blocking-resources.md
- render-tree-layout-reflow.md
- requestanimationframe.md
- requestidlecallback-scheduling.md
- scheduler-posttask-yielding.md
- spidermonkey-javascriptcore-other-engines.md
- storage-internals-cache-quota.md
- v8-jit-compilation.md
- banner.svg
- README.md
- advanced-language-features.md
- architecture.md
- async-concurrency.md
- company-specific.md
- concurrency.md
- data-structures.md
- dom-browser.md
- dsa-in-js.md
- engine-internals.md
- functions.md
- fundamentals.md
- language-tooling.md
- machine-coding.md
- modern-browser-apis.md
- networking.md
- objects-oop.md
- performance.md
- pwa.md
- quality-engineering.md
- README.md
- reliability.md
- security.md
- storage.md
- system-design.md
- type-systems.md
- abortcontroller-cancellation.md
- async-await-error-handling.md
- async-iterators-for-await.md
- call-apply-bind-polyfills.md
- callbacks-callback-hell.md
- classes-inheritance.md
- closures.md
- composition-pipe-compose.md
- concurrency-control-promise-pool.md
- currying-partial-application.md
- data-types-coercion-vs.md
- debounce-throttle.md
- destructuring-spread-rest.md
- event-loop-micro-macrotasks.md
- generators.md
- higher-order-functions.md
- iterators-iterables.md
- map-set-vs-objects-arrays.md
- memoization.md
- memory-leaks-in-js.md
- modules-esm-vs-cjs.md
- numbers-bigint-floating-point.md
- objects-descriptors-getters-setters.md
- optional-chaining-nullish-coalescing.md
- polyfills-map-filter-reduce-bind-promise.md
- promise-all-allsettled-race-any.md
- promises-states-chaining.md
- prototypes-prototype-chain.md
- proxy-reflect.md
- pure-functions-immutability.md
- regular-expressions.md
- service-workers.md
- shared-workers.md
- streams-api.md
- structuredclone-deep-clone.md
- symbol-well-known-symbols.md
- this-binding-4-rules.md
- var-let-const-scope-hoisting-tdz.md
- weakmap-weakset.md
- weakref-finalizationregistry.md
- web-workers.md
- banner.svg
- output-based-questions.md
- promise-polyfills-and-throttle-debounce.md
- README.md
- basics-the-type-system.md
- generics.md
- interfaces-unions-objects.md
- narrowing-guards.md
- README.md
- typescript-in-practice.md
- utility-mapped-types.md
- conditional-types-infer.md
- declaration-files-d-ts.md
- decorators.md
- discriminated-unions.md
- functions-overloads.md
- generic-constraints-defaults.md
- generics.md
- indexed-access-types.md
- interfaces-vs-type-aliases.md
- keyof-typeof.md
- literal-enum-types.md
- mapped-types.md
- narrowing-type-guards.md
- project-references-monorepos.md
- strict-mode-flags.md
- template-literal-types.md
- tsconfig-deep-dive.md
- type-basics-inference.md
- type-level-programming.md
- typing-async-generics-in-apis.md
- typing-react-components-hooks.md
- union-intersection-types.md
- unknown-vs-any-vs-never.md
- utility-types-partial-pick-omit-record.md
- variance-assignability.md
- banner.svg
- README.md
- architecture-scaling-css.md
- box-model-sizing.md
- flexbox.md
- grid.md
- positioning-stacking.md
- README.md
- responsive-modern-layout.md
- selectors-cascade-specificity.md
- visuals-effects-animation.md
- accessibility-in-css-focus-contrast.md
- box-model-box-sizing.md
- cascade-layers-layer.md
- centering-all-the-ways.md
- container-queries.md
- content-visibility-containment.md
- css-architecture-bem-itcss.md
- css-in-js-vs-utility-css-tailwind.md
- css-modules-scoping.md
- custom-properties-variables.md
- dark-mode-color-scheme.md
- design-tokens.md
- display-normal-flow.md
- flexbox.md
- fluid-type-clamp.md
- gpu-accelerated-animation-will-change.md
- grid.md
- has-is-where.md
- inheritance-initial-inherit-unset.md
- keyframe-animations.md
- logical-properties.md
- media-queries.md
- multi-column-aspect-ratio.md
- overflow-scroll-containers.md
- positioning-relative-absolute-sticky.md
- prefers-color-scheme-reduced-motion.md
- pseudo-classes-pseudo-elements.md
- reflow-vs-repaint-vs-composite.md
- scroll-driven-animations.md
- selectors-combinators.md
- stacking-context-z-index.md
- the-cascade-specificity.md
- transforms-2d-3d.md
- transitions.md
- units-rem-em-vw-ch.md
- banner.svg
- README.md
- avoiding-unnecessary-re-renders.md
- code-splitting-lazy-suspense.md
- components-props-composition.md
- compound-components-render-props.md
- concurrent-rendering.md
- controlled-vs-uncontrolled-inputs.md
- custom-hooks.md
- error-boundaries.md
- fiber-architecture.md
- hocs.md
- jsx-createelement.md
- lists-keys-reconciliation-pitfalls.md
- portals.md
- react-compiler.md
- react-memo-referential-equality.md
- react-server-components-rsc.md
- reconciliation-keys.md
- refs-forwardref.md
- rendering-re-render-mental-model.md
- rules-of-hooks.md
- server-actions.md
- ssr-hydration.md
- suspense-streaming.md
- testing-react.md
- usecontext-context-perf.md
- useeffect-effect-timing.md
- useid-useimperativehandle.md
- uselayouteffect-vs-useeffect.md
- usememo-usecallback.md
- usereducer-state-machines.md
- useref-imperative-handles.md
- usestate-batching.md
- usesyncexternalstore.md
- usetransition-usedeferredvalue.md
- virtualization-windowing.md
- banner.svg
- build-a-virtualized-list.md
- question-bank.md
- README.md
- app-router-server-components.md
- data-fetching-caching.md
- deployment-runtime.md
- optimization.md
- README.md
- rendering-strategies.md
- routing-navigation.md
- app-router-fundamentals.md
- caching-layers-request-data-full-route.md
- data-fetching-patterns.md
- dynamic-catch-all-routes.md
- edge-runtime.md
- font-optimization.md
- image-optimization.md
- isr-incremental-static-regeneration.md
- layouts-nested-routing.md
- loading-error-ui.md
- metadata-seo.md
- middleware.md
- pages-router-legacy.md
- parallel-intercepting-routes.md
- partial-prerendering-ppr.md
- route-handlers-api.md
- server-actions-mutations.md
- server-vs-client-components.md
- streaming-suspense.md
- banner.svg
- README.md
- component-architecture.md
- design-systems.md
- micro-frontends.md
- module-code-organization.md
- README.md
- scalability-rendering-architecture.md
- state-data-flow.md
- atomic-design.md
- backend-for-frontend-bff.md
- build-tooling-vite-webpack-esbuild.md
- clean-architecture-layering.md
- component-architecture-composition.md
- component-libraries-api-design.md
- container-vs-presentational.md
- dependency-injection.md
- design-systems.md
- design-tokens.md
- domain-driven-design-frontend.md
- error-handling-observability.md
- feature-based-feature-sliced-structure.md
- feature-flags-experimentation.md
- micro-frontends.md
- module-federation.md
- monorepos-nx-turborepo.md
- mvc-mvvm-in-the-frontend.md
- plugin-extension-systems.md
- rendering-strategy-selection-csr-ssr-ssg-isr.md
- state-architecture-where-state-lives.md
- versioning-release-strategy.md
- banner.svg
- README.md
- core-web-vitals.md
- loading-performance.md
- measuring-budgets.md
- network-caching.md
- README.md
- runtime-rendering-performance.md
- avoid-layout-thrashing.md
- bundle-optimization-code-splitting.md
- cdn-edge-delivery.md
- cls-cumulative-layout-shift.md
- compression-gzip-brotli.md
- core-web-vitals-overview.md
- critical-css-above-the-fold.md
- fcp-fid-legacy.md
- font-loading-strategy.md
- http-caching-service-worker-cache.md
- image-optimization-formats-responsive.md
- infinite-scroll-vs-pagination.md
- inp-interaction-to-next-paint.md
- lab-vs-field-data-rum.md
- lazy-loading-routes-components-images.md
- lcp-largest-contentful-paint.md
- list-virtualization-windowing.md
- memory-leaks-profiling.md
- preload-prefetch-preconnect.md
- tree-shaking-dead-code.md
- ttfb.md
- web-workers-offloading.md
- banner.svg
- README.md
- auth-tokens-storage.md
- cross-site-scripting-xss.md
- csp-security-headers.md
- csrf-request-forgery.md
- README.md
- supply-chain-data.md
- authentication-patterns.md
- authorization-rbac-abac.md
- clickjacking-frame-protection.md
- content-security-policy-csp.md
- cors-security-view.md
- csrf.md
- dependency-supply-chain-security.md
- injection-input-validation.md
- jwt-usage-pitfalls.md
- oauth-2-0-oidc.md
- owasp-top-10-overview.md
- permissions-policy.md
- prototype-pollution.md
- security-headers-hsts-x-frame-options.md
- subresource-integrity-sri.md
- trusted-types.md
- xss-defenses-escaping-sanitization.md
- xss-stored-reflected-dom.md
- banner.svg
- README.md
- forms-errors.md
- keyboard-focus.md
- README.md
- screen-readers-live-regions.md
- semantics-aria.md
- visual-motion-testing.md
- accessible-dialogs-modals.md
- accessible-forms.md
- accessible-menus-comboboxes.md
- accessible-tables.md
- accessible-tabs.md
- aria-authoring-practices-patterns.md
- aria-roles-states-properties.md
- color-contrast.md
- focus-management.md
- focus-trapping-modals.md
- keyboard-navigation-tab-order.md
- live-regions-announcements.md
- reduced-motion-prefers.md
- screen-readers-how-they-work.md
- semantic-html-first.md
- skip-links-landmarks.md
- text-alternatives-alt-labels.md
- the-accessibility-tree.md
- wcag-pour-principles.md
- when-not-to-use-aria.md
- banner.svg
- README.md
- apis-delivery.md
- caching.md
- http-fundamentals.md
- http-versions-connections.md
- README.md
- real-time-streaming.md
- cdn-edge-caching.md
- compression-gzip-brotli.md
- dns.md
- fetch-xhr-request-cancellation.md
- graphql.md
- grpc-grpc-web.md
- http-1-1-vs-http-2.md
- http-3-quic.md
- http-caching-cache-control-etag.md
- http-methods-status-codes-headers.md
- idempotency-request-dedupe.md
- load-balancing-client-view.md
- pagination-cursor-vs-offset.md
- polling-vs-long-polling-vs-push.md
- rate-limiting-retries-backoff.md
- rest-api-design.md
- server-sent-events-sse.md
- tls-handshake.md
- webrtc-p2p.md
- websocket.md
- webtransport.md
- banner.svg
- README.md
- forms-patterns.md
- fundamentals-of-state.md
- global-client-state.md
- local-component-state.md
- README.md
- server-state.md
- apollo-client-graphql-cache.md
- client-vs-server-state-the-key-distinction.md
- context-as-state-and-its-limits.md
- derived-state-selectors.md
- flux-unidirectional-data-flow.md
- immutability-structural-sharing.md
- jotai-atomic.md
- local-component-state-lifting.md
- mobx.md
- normalization.md
- optimistic-updates.md
- react-query-tanstack-query.md
- recoil.md
- redux-redux-toolkit.md
- rxjs-streams.md
- signals.md
- swr.md
- xstate-state-machines.md
- zustand.md
- banner.svg
- README.md
- component-ui-testing.md
- end-to-end-integration.md
- README.md
- strategy-mocking-ci.md
- testing-fundamentals.md
- unit-testing.md
- accessibility-testing.md
- component-testing-storybook.md
- e2e-with-cypress.md
- e2e-with-playwright.md
- fake-timers-async-testing.md
- flaky-tests-determinism.md
- integration-testing.md
- mocking-modules-timers-functions.md
- mocking-network-with-msw.md
- performance-testing-budgets.md
- query-priorities-user-centric-tests.md
- react-testing-library-rtl.md
- snapshot-testing-and-its-traps.md
- test-driven-development.md
- testing-hooks.md
- the-testing-pyramid-trophy.md
- unit-testing-with-jest.md
- visual-regression-testing.md
- vitest.md
- what-to-test-and-what-not-to.md
- banner.svg
- README.md
- accessibility.md
- api.md
- browser.md
- caching.md
- core-web-vitals.md
- css.md
- frontend-architecture.md
- javascript.md
- monitoring.md
- next-js.md
- offline.md
- performance.md
- react.md
- README.md
- rendering.md
- security.md
- seo.md
- state-management.md
- system-design.md
- testing.md
- banner.svg
- design-autocomplete.md
- design-chat-whatsapp-web.md
- design-google-docs.md
- design-image-carousel.md
- design-news-feed.md
- design-notification-system.md
- design-video-player.md
- README.md
- accessibility.md
- beginner.md
- browser-apis.md
- canvas.md
- chat-applications.md
- chat.md
- css.md
- dashboards.md
- drag-drop.md
- drawing.md
- e-commerce.md
- editors.md
- forms.md
- html.md
- javascript.md
- lists.md
- maps.md
- performance.md
- production-debugging.md
- react.md
- README.md
- real-product.md
- real-time-apps.md
- social-media.md
- streaming.md
- system-design-style.md
- tables.md
- typescript.md
- ui-components.md
- autocomplete-component.md
- banner.svg
- command-palette.md
- data-grid.md
- kanban-drag-and-drop.md
- modal-dialog.md
- nested-comments.md
- README.md
- star-rating.md
- coding-dsa-strategy.md
- communication-logistics.md
- formats-rounds.md
- machine-coding-approach.md
- README.md
- system-design-approach.md
- banner.svg
- README.md
- async-anti-patterns.md
- behavioral-patterns.md
- creational-patterns.md
- react-component-patterns.md
- README.md
- structural-patterns.md
- banner.svg
- observer-event-bus.md
- README.md
- dom-browser.md
- framework-internals.md
- function-utilities.md
- objects-data.md
- promises-async.md
- README.md
- banner.svg
- README.md
- adobe.md
- airbnb.md
- amazon.md
- apple.md
- atlassian.md
- banner.svg
- cloudflare.md
- doordash.md
- dropbox.md
- google.md
- linkedin.md
- meta.md
- microsoft.md
- netflix.md
- pinterest.md
- README.md
- stripe.md
- uber.md
- arrays-hashing.md
- backtracking.md
- binary-search.md
- bit-manipulation.md
- design.md
- dynamic-programming.md
- graphs.md
- greedy.md
- heap-priority-queue.md
- intervals.md
- linked-list.md
- math-geometry.md
- matrix.md
- README.md
- sliding-window.md
- sorting.md
- stack-queue.md
- strings.md
- trees-bst.md
- tries.md
- two-pointers.md
- amortized-analysis-dynamic-arrays.md
- analyzing-loops-recursion.md
- arrays-string-manipulation.md
- big-o-notation-time-space.md
- graphs-bfs-dfs-basics.md
- hash-maps-sets.md
- heaps-priority-queues.md
- linked-lists.md
- stacks-queues.md
- trees-binary-trees.md
- tries-autocomplete.md
- banner.svg
- README.md
- banner-contributing.svg
- banner-faq.svg
- banner-light.svg
- banner-roadmap.svg
- banner.svg
- site-preview.png
- 2026-07-10-interview-prep-website-design.md
- 2026-07-10-learn-practice-resources-and-remaining-banks-design.md
- 2026-07-14-topic-deep-dives-design.md
- settings.json
- types.d.ts
- .nojekyll
- favicon.svg
- google5bf740016d08db90.html
- og.png
- robots.txt
- inject-resources.ts
- link-topics.ts
- BankResources.astro
- QuestionList.astro
- SearchPalette.astro
- Sidebar.astro
- SpectrumBar.astro
- Toc.astro
- TopBar.astro
- BaseLayout.astro
- DocLayout.astro
- content.ts
- fetch-json.ts
- markdown.ts
- resources.ts
- sections.ts
- transform.ts
- url.ts
- [category].astro
- index.astro
- index.astro
- [topic].astro
- [page].astro
- index.astro
- index.astro
- faq.astro
- index.astro
- progress-catalog.json.ts
- progress.astro
- roadmap.astro
- search-index.json.ts
- global.css
- tokens.css
- env.d.ts
- e2e.mjs
- resources.test.ts
- topics.test.ts
- transform.test.ts
- astro.config.mjs
- package-lock.json
- package.json
- README.md
- tsconfig.json
- .gitignore
- CONTRIBUTING.md
- FAQ.md
- LICENSE
- README.md
- ROADMAP.md
- TEMPLATE.md
# Use via CDN
jsDelivrjsDelivr serves any public GitHub repository as a CDN with zero setup. Pick a version and a file to get a ready-to-paste link and snippet.
Link
Example
// repository documentation
Was this content helpful?
(0 ratings)
