Content is user-generated and unverified.
Customize
Frontend Developer Fundamentals - Study Guide
JavaScript Core Concepts
Function Context & Binding
call()
- Invoke function with specific
this
and arguments
apply()
- Same as call but takes array of arguments
bind()
- Returns new function with bound
this
Arrow functions vs regular functions
-
this
binding differences
Method borrowing
- Using one object's method on another
Asynchronous JavaScript
Promises
- then/catch/finally, chaining, error handling
Promise.all()
- Wait for all, fail-fast behavior
Promise.allSettled()
- Wait for all, get all results regardless
Promise.race()
- First to complete wins
async/await
- Syntactic sugar, error handling with try/catch
Event loop
- Call stack, callback queue, microtask queue
Callbacks vs Promises vs async/await
- When to use each
DOM Manipulation & Events
Event delegation
- Attaching events to parent elements
Event bubbling vs capturing
- Event flow phases
preventDefault() vs stopPropagation()
- Different purposes
Event object properties
- target, currentTarget, type, etc.
Custom events
- Creating and dispatching
DOM traversal
- parentNode, children, siblings
NodeList vs HTMLCollection
- Live vs static collections
Closures & Scope
Lexical scoping
- Where variables are accessible
Closure creation
- Functions retaining outer scope
Module pattern
- Using closures for privacy
IIFE
- Immediately Invoked Function Expressions
var vs let vs const
- Hoisting, block scope, temporal dead zone
Objects & Prototypes
Prototype chain
- How inheritance works
Object.create()
- Creating objects with specific prototype
Constructor functions
- Function-based object creation
Class syntax
- ES6+ syntactic sugar
hasOwnProperty()
- Checking direct properties
Object methods
- keys, values, entries, assign, freeze
Arrays & Iteration
map/filter/reduce
- Functional programming basics
forEach vs for...of vs for...in
- Different iteration methods
Array methods
- push/pop, shift/unshift, splice/slice
Array.from()
- Converting array-like objects
Spread operator
- Array/object spreading
Destructuring
- Array and object destructuring
Type System & Coercion
typeof vs instanceof
- Type checking methods
Truthy/falsy values
- What evaluates to false
== vs ===
- Loose vs strict equality
Type coercion
- Implicit type conversion
null vs undefined
- Differences and usage
Browser APIs & Web Standards
Storage & State
localStorage vs sessionStorage
- Persistence differences
Cookies
- Setting, reading, expiration, security
IndexedDB basics
- Client-side database
History API
- Manipulating browser history
URL API
- Parsing and constructing URLs
Network & Communication
Fetch API
- Modern HTTP requests
XMLHttpRequest
- Legacy AJAX
CORS
- Cross-origin request handling
WebSockets
- Real-time communication
Server-sent events
- One-way server communication
Performance & Optimization
Debouncing vs throttling
- Rate limiting techniques
Lazy loading
- Images, components, modules
Code splitting
- Bundle optimization
Memoization
- Caching expensive calculations
Virtual DOM concepts
- Why it exists, how it works
Critical rendering path
- How browsers render pages
CSS & Styling
Layout Systems
Flexbox
- 1D layout system
CSS Grid
- 2D layout system
Box model
- Content, padding, border, margin
Positioning
- Static, relative, absolute, fixed, sticky
z-index
- Stacking contexts
Responsive Design
Media queries
- Breakpoints and device targeting
Mobile-first approach
- Progressive enhancement
Viewport units
- vw, vh, vmin, vmax
CSS custom properties
- CSS variables
Modern CSS
CSS-in-JS concepts
- Styled components, emotion
CSS modules
- Scoped styling
Preprocessors
- Sass, Less basics
PostCSS
- CSS processing tool
Frontend Architecture & Patterns
Component Architecture
Component composition
- Building UIs with components
Props vs state
- Data flow in components
Controlled vs uncontrolled components
- Form handling
Higher-order components
- Component enhancement
Render props
- Sharing logic between components
State Management
Local vs global state
- When to use each
State lifting
- Moving state up the component tree
Context API
- React's built-in state sharing
Redux basics
- Actions, reducers, store (if relevant)
Immutability
- Why and how to avoid mutations
Module Systems
ES6 modules
- import/export syntax
CommonJS
- require/module.exports
Module bundlers
- Webpack, Vite, Parcel basics
Tree shaking
- Dead code elimination
Testing & Debugging
Testing Fundamentals
Unit vs integration vs e2e
- Different testing levels
Jest basics
- Testing framework
Testing Library
- Component testing philosophy
Mocking
- Stubbing dependencies
Test-driven development
- Writing tests first
Debugging Skills
Browser DevTools
- Console, Network, Performance tabs
Breakpoints
- Setting and using effectively
Error handling
- Try/catch, error boundaries
Source maps
- Debugging transpiled code
Build Tools & Workflow
Development Workflow
Package managers
- npm, yarn, pnpm
Version control
- Git fundamentals
Environment variables
- Configuration management
Hot reload
- Development server features
Build Process
Transpilation
- Babel, TypeScript
Bundling
- Module concatenation
Minification
- Code compression
Asset optimization
- Images, fonts, etc.
Security & Best Practices
Web Security
XSS prevention
- Input sanitization
CSRF protection
- Token-based protection
Content Security Policy
- XSS mitigation
HTTPS importance
- Transport security
Code Quality
Linting
- ESLint, Prettier
Code formatting
- Consistent style
Accessibility
- WCAG guidelines, ARIA
Performance budgets
- Keeping apps fast
Study Approach
Practice each concept
- Don't just read, implement
Build projects
- Apply concepts in real scenarios
Explain concepts
- If you can't explain it, you don't know it
Review regularly
- Spaced repetition for retention
Stay current
- Web standards evolve constantly
Red Flags to Avoid
Saying "I can just Google it" for fundamental concepts
Not understanding the tools you use daily
Confusing syntax memorization with concept understanding
Being unable to explain basic JavaScript behavior
Not knowing when to use different approaches
Content is user-generated and unverified.
Frontend Developer Fundamentals - Study Guide | Claude