Skip to content
tezvyn:

🌐Frontend Dev

Frontend web development and UI engineering

588 bites

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

Concepts in Frontend Dev, page 4

DOM Manipulation: Treating Your Webpage Like a Live Object
intermediate2 min read

DOM Manipulation: Treating Your Webpage Like a Live Object

The DOM is a live tree of your webpage's HTML. DOM manipulation is how JavaScript changes that tree—adding, removing, or updating elements. This is key for all interactive web development. The footgun: direct, frequent manipulation is slow.

border-radius: More Than Just Rounded Corners
easy2 min read

border-radius: More Than Just Rounded Corners

The border-radius property rounds an element's corners, used for everything from buttons to circular avatars. The footgun is its shorthand syntax: one value is simple, but two, three, or four values follow specific clockwise rules that are easy to mix up.

Vite's Dependency Pre-Bundling
advanced2 min read

Vite's Dependency Pre-Bundling

Vite's dev server pre-bundles dependencies to accelerate local development. It converts CommonJS modules to browser-native ESM and merges packages with many files into one, preventing massive HTTP request chains.

DOM Traversal: Navigating the HTML Tree
intermediate2 min read

DOM Traversal: Navigating the HTML Tree

DOM traversal is navigating a family tree of HTML nodes. You move between elements using properties like parentNode and nextSibling. This is key for finding elements relative to a known start point.

Custom Hooks: Package Component Logic for Reuse
intermediate2 min read

Custom Hooks: Package Component Logic for Reuse

A custom hook packages stateful logic (like useState and useEffect) into a reusable function. Use one when multiple components need the same logic, like tracking online status for a status bar and a save button. Footgun: Names must start with use.

@font-face: Ship Custom Fonts with Your CSS
intermediate2 min read

@font-face: Ship Custom Fonts with Your CSS

@font-face lets you use fonts not installed on a user's machine by telling the browser where to download them. It's how you get custom brand fonts on a website, but be wary of the performance hit from downloading large font files.

easy2 min read

Vue Component Props: Passing Data Downstream

Think of props as a component's 'arguments.' They let a parent pass data down to a child, making it reusable. Use them to pass dynamic data like a user's name to a profile card. The footgun: never mutate a prop directly inside the child component.

intermediate1 min read

Browser Object Model: The Browser's Unruly API

The Browser Object Model (BOM) is the collection of non-standard APIs browsers expose for interacting with the browser window. Unlike the standardized DOM, its implementation is up to each vendor, creating a major cross-browser compatibility footgun.

The useReducer Hook: Predictable State Updates
intermediate2 min read

The useReducer Hook: Predictable State Updates

useReducer is a state machine for your components, managing complex state changes predictably. Use it when state logic is complex or the next state depends on the previous one, like in a shopping cart.

CSS Gradients: Dynamic Images from Code
intermediate2 min read

CSS Gradients: Dynamic Images from Code

Think of CSS gradients as dynamic images generated by the browser, creating color transitions without a separate file. Use them for backgrounds and buttons. The default direction is top-to-bottom, but a 0deg angle is counterintuitively bottom-to-top.

Angular's input() Function: Passing Data to Components
easy2 min read

Angular's input() Function: Passing Data to Components

Angular's input() function lets a parent pass data to a child, defining the child's public API. Use it to configure a component, like passing a value to a slider. The footgun: the returned signal is read-only; the child cannot modify its own input.

Event Bubbling vs. Capturing: The DOM's Two-Way Street
intermediate2 min read

Event Bubbling vs. Capturing: The DOM's Two-Way Street

An event fired on a nested element travels in two phases: first down from the root (capturing), then back up (bubbling). This is how all DOM events work, like clicks.

React's useCallback: Cache Functions, Not Just Values
intermediate2 min read

React's useCallback: Cache Functions, Not Just Values

useCallback gives you the same function instance across re-renders, as long as its dependencies are stable. This is key for optimizing child components with React.memo or preventing useEffect from re-running.

CSS box-shadow: Creating Depth and Elevation
intermediate2 min read

CSS box-shadow: Creating Depth and Elevation

box-shadow fakes depth by casting a shadow from an element's frame. It's used to elevate UI like cards and modals or create inner shadows for pressed states. The footgun: omitting the color causes it to inherit the parent's text color, not black.

Svelte Props: Passing Data with `export let`
easy2 min read

Svelte Props: Passing Data with `export let`

In Svelte, export let turns a variable into a prop, letting a parent component pass data down. It's how you pass a userName to a ProfileCard component. The footgun: forgetting export creates a private variable, not a prop, so data isn't received.

The JavaScript Event Loop: Asynchronicity on a Single Thread
intermediate2 min read

The JavaScript Event Loop: Asynchronicity on a Single Thread

The event loop is a queue that lets single-threaded JavaScript handle asynchronous tasks without blocking. It processes callbacks from Web APIs like fetch or setTimeout one at a time. The footgun: setTimeout(fn, 0) doesn't run instantly, just next.

useMemo: Cache Expensive Calculations in React
intermediate2 min read

useMemo: Cache Expensive Calculations in React

The useMemo hook caches a function's return value, preventing slow calculations from running on every render. Use it to skip heavy data filtering unless its inputs change. The main footgun is a missing dependency, which leads to stale, cached data.

CSS text-shadow: Adding Depth and Legibility to Text
intermediate2 min read

CSS text-shadow: Adding Depth and Legibility to Text

The text-shadow property adds depth to text, like casting a shadow from a light source. Use it for subtle emphasis, letterpress effects, or to make text readable on busy backgrounds. The footgun: not setting a color, as browser defaults vary widely.

easy2 min read

Vue Custom Events: Child-to-Parent Communication

Think of $emit as a child component sending a flare up to its parent. It's how children report actions upwards, reversing the top-down flow of props. Use it to trigger parent state changes, like closing a modal. The footgun: events don't bubble.

Smooth Animations with requestAnimationFrame
intermediate2 min read

Smooth Animations with requestAnimationFrame

Sync your code to the browser's repaint cycle for smooth, efficient animations with requestAnimationFrame. Use it for any visual change over time, like moving an element or running a game loop.

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