30% OFF - Use code HANDSON30 for 30% off any course or Dometrain Pro! Browse courses →
  • Courses
  • Learning Paths
  • Blogs
  • Authors
  • Leaderboard
  • Dometrain Pro
  • Shopping Basket

    Your basket is empty

  • Business Portal
  • Hands-On: Learn JavaScript

    Learn JavaScript from scratch by completing practical exercises and writing real JavaScript code.

    About This Course

    Learning JavaScript by just reading about it is not enough. You need to get your hands dirty and write real code to solve real-world problems. In this 20+ hour course, you will complete hundreds of hands-on exercises using Dometrain’s state-of-the-art web Code Editor, starting from the fundamentals and progressing to intermediate and advanced JavaScript features. This course assumes you have a basic understanding of programming, but do not yet know JavaScript. At Dometrain, our goal is to be the best place for developers to learn programming languages and concepts from scratch. We are offering this course at no cost for 14 days so you can try it and see if it's for you. Whether you are just getting started or looking to strengthen your skills, you can take this course to ensure your JavaScript knowledge is up to date.

    Course Curriculum

    16h 58m 29 sections
    Hello World
    05:00
    Printing Multiple Lines
    05:00
    Comments
    05:00
    Basic Arithmetic Output
    05:00
    String Concatenation
    05:00
    Chapter Capstone - Formatted Receipt
    05:00
    Declaring Variables with let
    05:00
    Constants with const
    05:00
    Number Type
    05:00
    String Type
    05:00
    Boolean Type
    05:00
    Undefined and Null
    05:00
    The typeof Operator
    05:00
    Chapter Capstone - Type Reporter
    05:00
    Arithmetic Operators
    05:00
    Assignment Operators
    05:00
    Comparison Operators
    05:00
    Strict vs Loose Equality
    05:00
    Logical Operators
    05:00
    Ternary Operator
    05:00
    Nullish Coalescing Operator
    05:00
    Chapter Capstone - Expression Evaluator
    05:00
    String Length and Character Access
    05:00
    Changing Case
    05:00
    Trimming and Padding
    05:00
    Searching Strings
    05:00
    Extracting Substrings
    05:00
    Replacing Text
    05:00
    Template Literals
    05:00
    Chapter Capstone - String Processor
    05:00
    If Statements
    05:00
    If-Else Statements
    05:00
    Else-If Chains
    05:00
    Switch Statements
    05:00
    Truthy and Falsy Values
    05:00
    Nested Conditionals
    05:00
    Chapter Capstone - Ticket Pricer
    05:00
    While Loops
    05:00
    For Loops
    05:00
    Do-While Loops
    05:00
    Break and Continue
    05:00
    Nested Loops
    05:00
    Looping Through Strings
    05:00
    Chapter Capstone - Number Pattern
    05:00
    Function Declarations
    05:00
    Parameters and Return Values
    05:00
    Multiple Parameters
    05:00
    Default Parameters
    05:00
    Early Return Pattern
    05:00
    Scope Basics
    05:00
    Chapter Capstone - Math Toolkit
    05:00
    Function Expressions
    05:00
    Arrow Functions
    05:00
    Arrow Functions with Implicit Return
    05:00
    Rest Parameters
    05:00
    Closures
    05:00
    IIFE Pattern
    05:00
    Chapter Capstone - Function Toolkit
    05:00
    Creating and Accessing Arrays
    05:00
    Modifying Array Elements
    05:00
    Array Length and Iteration
    05:00
    for...of Loop
    05:00
    Push, Pop, Shift, Unshift
    05:00
    Splice and Slice
    05:00
    Searching Arrays
    05:00
    Chapter Capstone - Array Manager
    05:00
    forEach
    05:00
    map
    05:00
    filter
    05:00
    find and findIndex
    05:00
    some and every
    05:00
    reduce
    05:00
    Chaining Array Methods
    05:00
    Chapter Capstone - Data Pipeline
    05:00
    Sorting with Custom Comparators
    05:00
    flat and flatMap
    05:00
    Array.from and Array.of
    05:00
    Spread Operator with Arrays
    05:00
    Array Destructuring
    05:00
    Immutable Array Methods
    05:00
    Chapter Capstone - Nested Data Processor
    05:00
    Creating Objects
    05:00
    Accessing Properties
    05:00
    Adding and Deleting Properties
    05:00
    Computed Property Names
    05:00
    Shorthand Properties and Methods
    05:00
    Checking Property Existence
    05:00
    Chapter Capstone - Contact Card Builder
    05:00
    Object.keys, Object.values, Object.entries
    05:00
    Iterating with for...in
    05:00
    Object Spread and Object.assign
    05:00
    Object Destructuring
    05:00
    Nested Object Destructuring
    05:00
    Optional Chaining
    05:00
    JSON Parse and Stringify
    05:00
    Chapter Capstone - Data Merger
    05:00
    Creating and Using Maps
    05:00
    Map Iteration
    05:00
    Creating and Using Sets
    05:00
    Set Operations
    05:00
    Converting Between Collections
    05:00
    Map vs Object
    05:00
    Chapter Capstone - Word Frequency Analyzer
    05:00
    Deep Nested Destructuring
    05:00
    Default Values in Destructuring
    05:00
    Rest in Destructuring
    05:00
    Swapping Variables
    05:00
    Function Parameter Destructuring
    05:00
    Chapter Capstone - Config Merger
    05:00
    The this Keyword
    05:00
    this in Arrow vs Regular Functions
    05:00
    call and apply
    05:00
    bind
    05:00
    Constructor Functions
    05:00
    Prototypes and Prototype Chain
    05:00
    Chapter Capstone - Shape Factory
    05:00
    Class Declarations
    05:00
    Constructor and Instance Properties
    05:00
    Instance Methods
    05:00
    Getters and Setters
    05:00
    Static Methods and Properties
    05:00
    Private Fields
    05:00
    Chapter Capstone - Bank Account System
    05:00
    Extends and Super
    05:00
    Method Overriding
    05:00
    Calling Parent Methods with super
    05:00
    The instanceof Operator
    05:00
    Composition Over Inheritance
    05:00
    Chapter Capstone - Vehicle Hierarchy
    05:00
    Try-Catch Basics
    05:00
    The Error Object
    05:00
    Throwing Custom Errors
    05:00
    Custom Error Classes
    05:00
    The Finally Block
    05:00
    Chapter Capstone - Safe Parser
    05:00
    Callbacks
    05:00
    Higher-Order Functions
    05:00
    Recursion
    05:00
    Function Composition
    05:00
    Currying
    05:00
    Memoization
    05:00
    Chapter Capstone - Function Toolkit
    05:00
    Creating Promises
    05:00
    then and catch
    05:00
    Promise Chaining
    05:00
    Promise.all
    05:00
    Promise.race and Promise.any
    05:00
    Promise.allSettled
    05:00
    Chapter Capstone - Async Task Coordinator
    05:00
    Async Functions
    05:00
    Await Keyword
    05:00
    Error Handling with Async/Await
    05:00
    Sequential vs Parallel Execution
    05:00
    Async Utility Functions
    05:00
    Chapter Capstone - Async Data Processor
    05:00
    The Iterator Protocol
    05:00
    Custom Iterables
    05:00
    Generator Functions
    05:00
    yield and Delegation with yield*
    05:00
    Lazy Evaluation with Generators
    05:00
    Chapter Capstone - Range Iterator
    05:00
    Creating and Using Symbols
    05:00
    Well-Known Symbols - Symbol.iterator
    05:00
    Symbol.toPrimitive
    05:00
    WeakMap
    05:00
    WeakSet
    05:00
    Chapter Capstone - Custom Collection
    10:00
    Creating a Basic Proxy
    05:00
    Get and Set Traps
    10:00
    Has and DeleteProperty Traps
    07:30
    The Apply Trap
    05:00
    Reflect API
    05:00
    Chapter Capstone - Validation Proxy
    05:00
    Creating Patterns and Basic Matching
    05:00
    Character Classes and Quantifiers
    05:00
    Anchors and Boundaries
    05:00
    Groups and Capturing
    05:00
    Lookahead and Lookbehind
    05:00
    Named Groups and matchAll
    05:00
    Chapter Capstone - Input Validator
    10:00
    Pure Functions
    05:00
    Immutability Patterns
    05:00
    Function Composition and Piping
    05:00
    Partial Application
    05:00
    Transducers
    05:00
    Chapter Capstone - Data Transform Pipeline
    10:00
    Property Descriptors
    05:00
    Object.defineProperty
    05:00
    Object.freeze and Object.seal
    05:00
    Object.preventExtensions
    05:00
    Dynamic Property Access Patterns
    05:00
    Chapter Capstone - Observable Object
    05:00
    Object.groupBy
    05:00
    Built-in Set Methods
    05:00
    Iterator Helpers
    05:00
    structuredClone
    05:00
    Promise.withResolvers
    05:00
    Object.fromEntries Advanced
    05:00
    Chapter Capstone - Modern Toolkit
    05:00

    Meet Your Instructor

    Nick Chapsas

    Nick Chapsas

    Nick Chapsas is a .NET & C# content creator, educator and a Microsoft MVP for Developer Technologies with years of experience in Software Engineering and Engineering Management.

    He has worked for some of the biggest companies in the world, building systems that served millions of users and tens of thousands of requests per second.

    Nick creates free content on YouTube and is the host of the Keep Coding Podcast.

    View all courses by Nick Chapsas

    What's New

    Getting Started: Model Context Protocol (MCP)
    course

    Getting Started: Model Context Protocol (MCP)

    Learn how to get started with the Model Context Protocol (MCP) and integrate it into your applications.

    Learn more about Getting Started: Model Context Protocol (MCP)
    Hands-On: Learn TypeScript
    course

    Hands-On: Learn TypeScript

    Learn TypeScript through hands-on coding exercises. Practice what you learn with interactive challenges designed for every level.

    Learn more about Hands-On: Learn TypeScript
    Hands-On: Learn JavaScript
    course

    Hands-On: Learn JavaScript

    Learn JavaScript through hands-on coding exercises. Practice what you learn with interactive challenges designed for every level.

    Learn more about Hands-On: Learn JavaScript
    Hands-On: Data Structures & Algorithms in C#
    course

    Hands-On: Data Structures & Algorithms in C#

    Master data structures and algorithms through hands-on coding exercises in C#. Free to enroll for 7 days!

    Learn more about Hands-On: Data Structures & Algorithms in C#
    Blogsmith.ai
    feature

    Blogsmith.ai

    Turn your videos into blogs and newsletters with AI. Check out our new product at blogsmith.ai.

    Learn more about Blogsmith.ai
    Leaderboard
    feature

    Leaderboard

    See how you stack up against other learners. Track your progress, climb the ranks, and compete with the Dometrain community.

    Learn more about Leaderboard
    Hands-On: Learn PostgreSQL
    course

    Hands-On: Learn PostgreSQL

    Learn PostgreSQL through hands-on coding exercises. Practice what you learn with interactive challenges designed for every level.

    Learn more about Hands-On: Learn PostgreSQL
    Free Hands-On: C# for Beginners
    course

    Free Hands-On: C# for Beginners

    Learn C# through hands-on coding exercises. Practice what you learn with interactive challenges designed for everyone, from beginners to experts.

    Learn more about Free Hands-On: C# for Beginners
    Getting Started: AI for .NET Developers
    course

    Getting Started: AI for .NET Developers

    Get started with integrating AI into your .NET applications effectively using the latest LLM best practices.

    Learn more about Getting Started: AI for .NET Developers
    Getting Started: Building .NET Applications on AWS
    course

    Getting Started: Building .NET Applications on AWS

    Learn how to build and deploy .NET applications on AWS using CDK, Lambda, DynamoDB, S3, and more.

    Learn more about Getting Started: Building .NET Applications on AWS
    What's new in C# 14
    blog

    What's new in C# 14

    This guide covers every new C# 14 feature, explains its benefits, and provides practical code examples to help you navigate how you can use them.

    Learn more about What's new in C# 14
    Let's Build It: AI Chatbot with RAG in .NET Using Your Data
    course

    Let's Build It: AI Chatbot with RAG in .NET Using Your Data

    Build a Retrieval-Augmented Generation (RAG) chatbot that can answer questions using your data.

    Learn more about Let's Build It: AI Chatbot with RAG in .NET Using Your Data
    From Zero to Hero: SignalR in .NET
    course

    From Zero to Hero: SignalR in .NET

    Enable enterprise-grade real-time communication for your web apps with SignalR.

    Learn more about From Zero to Hero: SignalR in .NET
    Deep Dive: Solution Architecture
    course

    Deep Dive: Solution Architecture

    Master solution architecture and turn business needs into scalable, maintainable systems.

    Learn more about Deep Dive: Solution Architecture
    Migrating: ASP.NET Web APIs to ASP.NET Core
    course

    Migrating: ASP.NET Web APIs to ASP.NET Core

    A step-by-step process to migrate ASP.NET Web APIs from .NET Framework to ASP.NET Core.

    Learn more about Migrating: ASP.NET Web APIs to ASP.NET Core
    Getting Started: Caching in .NET
    course

    Getting Started: Caching in .NET

    Let's make the hardest thing in programming easy for .NET software engineers.

    Learn more about Getting Started: Caching in .NET
    From Zero to Hero: Testing with xUnit in C#
    course

    From Zero to Hero: Testing with xUnit in C#

    Learn how to test any codebase in .NET with the latest version of xUnit, the industry-standard testing library.

    Learn more about From Zero to Hero: Testing with xUnit in C#
    Create a ChatGPT Console AI Chatbot in C#
    blog

    Create a ChatGPT Console AI Chatbot in C#

    This walkthrough is your hands-on entry point to create a basic C# console application that talks to ChatGPT using the OpenAI API.

    Learn more about Create a ChatGPT Console AI Chatbot in C#