Codstak
    • Home
    • DSA
    • JavaScript
    • TypeScript
    • Node.js
    • React
    • More↓
      BlogReact PrepPricingDiscordNewsletterLeaderboard
    Codstak

    Hands-on coding practice for web developers preparing for real frontend work and interviews.

    Practice

    • React challenges
    • JavaScript
    • TypeScript
    • Data structures

    Resources

    • Blog
    • Interview prep
    • Leaderboard
    • Pricing
    • Feedback

    Stay Updated

    Get weekly coding challenges and interview prep tips

    © 2026 Codstak. All rights reserved.

    PrivacyTermsNewsletter
    JavaScript learning path

    Build JavaScript skill from fundamentals to interview practice.

    Work through focused modules covering data, functions, async behavior, browser runtime, and real interview trade-offs. Start anywhere, then use the suggested order to build stronger evidence.

    35

    Available activities

    6

    Learning modules

    Newbie to hard

    Progression within modules

    Modules group related concepts. Activities move from easy to hard; prerequisites guide you without blocking experienced learners.

    Module 0

    JavaScript basics

    Start with plain JavaScript: values, decisions, loops, strings, arrays, and small functions.

    15 activitiesChecking progress
    ValuesConditionalsLoopsStringsArraysmap and filterFunctionsSpreadGetters and setters
    01
    CheckingnewbieBuild a utility

    Introduce a Learner

    Return a friendly greeting from a learner's display name.

    Values and strings
    • values
    • strings
    • functions
    10 minStart
    02
    CheckingnewbieBuild a utility

    Classify a Number

    Decide whether a number is positive, negative, or zero.

    Conditionals
    • numbers
    • conditionals
    • comparison
    10 minStart
    03
    CheckingnewbieBuild a utility

    Count Even Values

    Count how many values in a list can be divided by two without a remainder.

    Loops and numbers
    • arrays
    • loops
    • numbers
    12 minStart
    04
    CheckingnewbieBuild a utility

    Sum the Values

    Add every number in a list and return the total.

    Loops and arrays
    • arrays
    • loops
    • accumulation
    12 minStart
    05
    CheckingnewbieBuild a utility

    Find the Largest Value

    Return the largest number in a list, or null when the list is empty.

    Arrays and comparisons
    • arrays
    • loops
    • comparisons
    15 minStart
    06
    CheckingnewbieBuild a utility

    Reverse a Word

    Return the characters of a word in reverse order.

    Strings
    • strings
    • loops
    12 minStart
    07
    CheckingnewbieBuild a utility

    Count Vowels

    Count the vowels in a word without treating uppercase and lowercase differently.

    Strings and conditions
    • strings
    • loops
    • conditionals
    15 minStart
    08
    CheckingnewbieBuild a utility

    Repeat a Message

    Return a list containing the same message a requested number of times.

    Loops and arrays
    • loops
    • arrays
    • functions
    12 minStart
    09
    CheckingnewbieBuild a utility

    Calculate an Average

    Return the average of a list of scores, or null when no scores exist.

    Arrays and arithmetic
    • arrays
    • loops
    • arithmetic
    15 minStart
    10
    CheckingnewbieBuild a utility

    Capitalize Words

    Return a sentence with the first letter of every word uppercase.

    Strings and arrays
    • strings
    • arrays
    • loops
    15 minStart
    11
    CheckingnewbieBuild a utility

    Map Score Labels

    Use map to turn numeric scores into readable labels without changing the original list.

    map and arrays
    • arrays
    • map
    • functions
    15 minStart
    12
    CheckingnewbieBuild a utility

    Build a Study Label

    Use an implicit return in a small helper and an explicit return in the main function.

    Explicit and implicit returns
    • functions
    • arrow functions
    • strings
    15 minStart
    13
    CheckingnewbieBuild a utility

    Merge Preferences with Spread

    Create a new preferences object by combining defaults with user overrides.

    Spread operator
    • objects
    • spread
    • immutability
    15 minStart
    14
    CheckingnewbieBuild a utility

    Clamp Progress with a Setter

    Use a setter to keep a progress value between zero and one hundred.

    Getters and setters
    • objects
    • setters
    • getters
    18 minStart
    15
    CheckingnewbieBuild a utility

    Filter Passing Scores

    Keep only scores that meet the practice passing mark.

    filter and arrays
    • arrays
    • filter
    • conditionals
    15 minStart
    Module 1

    Working with data

    Build reliable instincts for values, objects, arrays, and safe transformations.

    9 activitiesChecking progress
    TypesArraysObjectsDestructuringImmutability
    01
    CheckingeasyBuild a utility

    Request Label Normalizer

    Build predictable display labels from mixed request records without mutating the source list.

    Arrays and objects
    • arrays
    • objects
    • immutability
    25 minStart
    02
    CheckingeasyDebug and repair

    Release-Order Comparator

    Repair a release ordering helper so it is deterministic and leaves the input untouched.

    Sorting and runtime types
    • sorting
    • comparator
    • mutation
    30 minStart
    03
    CheckingeasyDebug and repair

    Filter-State Snapshot

    Repair a nested state update that accidentally changes a previous snapshot.

    References and immutability
    • references
    • objects
    • immutability
    25 minStart
    04
    CheckingeasyBuild a utility

    Computed Field Updater

    Update a named deployment field without mutating the existing form object.

    Object updates
    • objects
    • computed properties
    • immutability
    25 minStart
    05
    CheckingeasyBuild a utility

    Optional Config Reader

    Read a safe retry delay from incomplete client configuration.

    Optional data and defaults
    • optional chaining
    • runtime types
    • configuration
    25 minStart
    06
    CheckingmediumBuild a utility

    Safe Response Boundary

    Turn unknown release API data into safe row records without assuming its shape.

    Runtime types and guards
    • runtime types
    • nullability
    • validation
    35 minStart
    07
    CheckingmediumBuild a utility

    Destructured Release Summary

    Read nested release data with defaults and return a stable summary.

    Destructuring
    • destructuring
    • defaults
    • objects
    30 minStart
    08
    CheckingmediumBuild a utility

    Safe JSON Preferences

    Parse stored preferences without letting invalid storage break the UI.

    Parsing and error handling
    • json
    • errors
    • storage
    35 minStart
    09
    CheckingmediumBuild a utility

    Request Result Classifier

    Convert unknown request outcomes into a small UI-safe result contract.

    Error boundaries
    • errors
    • runtime types
    • api data
    35 minStart
    Module 2

    Functions and execution

    Understand the execution model behind closures, callbacks, receivers, and modules.

    6 activitiesChecking progress
    ScopeClosuresHigher-order functionsthisPrototypesModules
    01
    CheckingeasyBuild a utility

    Scoped Notification Counter

    Use a closure to keep independent notification counts private to each counter.

    Closures and scope
    • closures
    • scope
    • functions
    35 minStart
    02
    CheckingeasyDebug and repair

    Callback Context Repair

    Repair an extracted method that loses the release object it should describe.

    this and callbacks
    • this
    • callbacks
    • bind
    35 minStart
    03
    CheckingmediumBuild a utility

    Release Check Pipeline

    Apply a sequence of named checks by treating functions as values.

    Higher-order functions
    • functions
    • higher order functions
    • pipelines
    30 minStart
    04
    CheckingmediumTrace and explain

    Prototype Owner Report

    Distinguish instance data from shared prototype behavior.

    Prototype delegation
    • prototypes
    • constructors
    • objects
    35 minStart
    05
    CheckingmediumBuild a utility

    Private Preference Module

    Keep a preference value private behind a small closure-based API.

    Closures and modules
    • closures
    • module pattern
    • privacy
    35 minStart
    06
    CheckingmediumBuild a utility

    Feature Module Contract

    Expose a narrow feature-flag module instead of leaking mutable internal state.

    Module boundaries
    • modules
    • closures
    • api design
    40 minStart
    Module 3

    Asynchronous JavaScript

    Reason about ordering, failure, cancellation, and competing asynchronous work.

    5 activitiesChecking progress
    Event loopPromisesasync/awaitRetriesTimersCancellation
    01
    CheckingeasyTrace and explain

    UI Task Ordering

    Predict and implement the observable order of synchronous work, promise callbacks, and timers.

    Event loop ordering
    • event loop
    • promises
    • timers
    40 minStart
    02
    CheckingeasyBuild a utility

    Retryable Preference Save

    Retry a transient preference-save failure and return a predictable result.

    Promises and retries
    • promises
    • async
    • errors
    45 minStart
    03
    CheckingmediumDebug and repair

    Search Request Coordinator

    Prevent an older search response from replacing the newest query result.

    Stale requests and recovery
    • async
    • promises
    • stale results
    45 minStart
    04
    CheckingmediumBuild a utility

    Debounced Query Settler

    Model the final query that remains after rapid input changes settle.

    Timers and cancellation
    • debounce
    • timers
    • closures
    40 minStart
    05
    CheckinghardBuild a utility

    Request Timeout Race

    Return a timeout result when a simulated request cannot finish in budget.

    Races and time budgets
    • promises
    • timeout
    • async
    45 minStart
    Module 4

    Browser runtime

    Apply JavaScript knowledge to DOM events, browser APIs, and real UI boundaries.

    Coming next
    DOMEventsDelegationStorageNetworkCleanup
    This module is planned. New activities will appear here as they pass the content and test quality review.
    Module 5

    Interview synthesis

    Combine multiple concepts while debugging, reviewing, refactoring, and explaining code.

    Coming next
    DebuggingCode reviewRefactoringTrade-offsTimed practice
    This module is planned. New activities will appear here as they pass the content and test quality review.