Skip to content
tezvyn:

🌐Frontend Dev

Frontend web development and UI engineering

267 bites

Test yourself: Top 30 intermediate Frontend Dev interview questionsMultiple choice, with the correct answer and why it is correct on every question. Free, no sign-in.

Intermediate interview questions in Frontend Dev, page 13

What is Angular Ivy's 'locality' and its benefits over View Engine?
intermediate2 min read

What is Angular Ivy's 'locality' and its benefits over View Engine?

Tests Ivy's per-file compilation model. Locality compiles decorators to static properties without global knowledge, except components need their NgModule scope, speeding builds and tree-shaking.

intermediate1 min read

Server-side data fetching in Nuxt 3?

Use useFetch or useAsyncData to fetch on server, data is serialized and injected into page state, component accesses it as reactive data.

intermediate2 min read

Core tokens versus alias semantic tokens

Core tokens are raw values like blue-500; alias tokens reference cores with intent like color-action; semantic aliasing decouples meaning from raw value.

intermediate2 min read

Component variants with BEM modifier classes

A base block class holds shared styles, modifier classes (block--primary, block--destructive) layer only the differences, and you combine base plus one modifier.

Pass server state to client in Nuxt and name the composable
intermediate2 min read

Pass server state to client in Nuxt and name the composable

This tests Nuxt SSR state hydration. A strong answer names useState, explains server values serialize to JSON for client hydration, and warns against refs defined outside setup.

intermediate2 min read

Template syntax vs JSX: framework design trade-offs?

Templates (Vue, Angular) are declarative, easier to learn, enable static analysis; JSX (React, Solid) is code-based, flexible, familiar to JavaScript developers.

intermediate2 min read

Monorepo tradeoffs for a design system

Monorepos give atomic cross-package changes, shared tooling, and easy local linking; drawbacks include build complexity, CI scaling, and tighter coupling.

How would you implement a custom useDebounce hook using useState and useEffect?
intermediate2 min read

How would you implement a custom useDebounce hook using useState and useEffect?

It tests effect cleanup and stale closure awareness. Use useState for the debounced value, useEffect to set a setTimeout when the input changes, and return a cleanup calling clearTimeout. Omitting cleanup leaks timers and fires stale values.

intermediate2 min read

Multi-theme infrastructure for a component library

Style components against semantic tokens exposed as CSS custom properties, define per-theme token values, and switch at runtime via a data-theme attribute or class.

intermediate2 min read

How do Vue, Angular, and Svelte stores trigger component re-renders?

Tests deep knowledge of reactivity primitives. Contrast Vue's proxy subscriptions, Angular's RxJS push through async pipe or markForCheck, and Svelte's compiler-generated store invalidation. Red flag: claiming all three use virtual DOM diffing or polling.

What limits React inline styles and when are they still appropriate?
intermediate2 min read

What limits React inline styles and when are they still appropriate?

This tests React styling trade-offs. Outline: no pseudo-classes, media queries, or keyframes; maintenance and perf costs; good for dynamic state styling, prototyping, FOUC prevention, and small components. Red flag: claiming they are always bad or free.

intermediate2 min read

What is the difference between ChangeDetectionStrategy.Default and ChangeDetectionStrategy.OnPush in Angular?

Default checks components on most async events; OnPush checks on input changes, DOM events, or async pipe emits.

Compare CSS Modules and runtime CSS-in-JS libraries across DX, performance, and dynamic styling
intermediate2 min read

Compare CSS Modules and runtime CSS-in-JS libraries across DX, performance, and dynamic styling

This tests build-time vs runtime style architecture trade-offs. A strong answer contrasts CSS Modules' static extraction with CSS-in-JS's prop-driven runtime injection, covers dynamic styling patterns, and weighs SSR and bundle costs.

intermediate2 min read

How do you debug and fix flaky Cypress E2E tests?

This tests systematic debugging of async UI behavior. A strong answer isolates root causes via logs and screenshots, fixes races with explicit waits or intercepts, and stubs APIs not network timing.

intermediate2 min read

Purpose of tailwind.config.js content array and JIT scanning

Tests knowledge of Tailwind's scan-to-generate pipeline. Strong answer: content defines files to scan as plain text for class tokens; JIT emits CSS only for discovered classes, keeping production CSS tiny. Red flag: calling it AST parsing or PurgeCSS config.

intermediate2 min read

Angular Universal server memory leak: causes and diagnosis

Incomplete platform destruction, global DOM polyfills, unclosed RxJS; use heap snapshots and --inspect.

intermediate2 min read

Is Tailwind maintainable at scale, and what patterns support your claim?

Tests your CSS architecture judgment with utility-first scaling patterns. Strong answers pick a side, citing three patterns: strict tailwind config, components hiding class soup, and sparing @apply.

intermediate1 min read

Purpose of Outlet in React Router v6 nested routes

Outlet renders the matched child route inside a parent layout, enabling shared chrome with swappable content; configure nested routes and place Outlet where children render.

intermediate2 min read

Describe a Nuxt server caching strategy for slow upstream APIs

Tests server-side caching architecture in Nuxt Nitro. A strong answer proposes a server middleware or route handler with Redis or LRU in-memory cache, sets TTL per endpoint, and handles cache invalidation.

How do React Router v6.4 loaders change data fetching from useEffect?
intermediate2 min read

How do React Router v6.4 loaders change data fetching from useEffect?

This tests moving from fetch-on-render to render-as-you-fetch. Explain that loaders fire before render, removing useEffect waterfalls, while the router ignores stale promises on interruption. Red flag: calling loaders just useEffect outside the component.

We are hiring for this. Every open role lists the topics its interview covers, so you can prepare for the real thing rather than guessing.

See open roles