JavaScript Zero To Pro
JavaScript from your first console.log to fetch calls, modules, and a real local dev setup, with a mini project closing out almost every section.
Most people fail at JavaScript politely. They watch someone else code, nod along, understand every line in the video, and then freeze the second they face an empty editor. Understanding while watching is cheap. Recall while building is the actual skill, and it only comes from typing.
That is the whole design of this course. Learn a concept, then immediately build something small with it, over and over, until the language stops feeling like trivia and starts feeling like a tool.
Learn it, then build with it in the same section
Variables and operators end in a calculator app. Conditionals end with a decision maker. Arrays close with a to-do list manager, objects with a user profile, higher-order functions with a small data processing dashboard. Later sections raise the stakes: a Pokedex pulling live data from an API, a notes app that survives a page refresh through local storage, a registration form with real-time validation, a library management system built with classes.
None of these are portfolio centerpieces on their own. That is fine. Each one exists to force the concept you just learned through your own fingers while it is fresh, which is the part most tutorials skip.
The full arc of the language
The course starts where JavaScript actually lives, in the browser. You write your first script, poke at the console, and learn how JS sits next to HTML and CSS. From there it walks the core: variables and data types, control flow, functions, scope and hoisting, arrays, objects, loops, and the map, filter, and reduce methods you will use every working day.
Then it covers what a basics course usually leaves out. DOM manipulation and events, including bubbling and delegation. Form validation with custom error messages. Asynchronous code with callbacks, promises, and async await. The Fetch API and JSON, taught properly: what an API even is, the HTTP methods, handling errors when a request fails, and getting the response onto the page. Debugging in DevTools. Browser storage. A modern ES6+ section with destructuring, optional chaining, and nullish coalescing. Even a section on performance, memory leaks, and writing code another person can read without wincing.
Strings, numbers, and dates get their own dedicated section too, which sounds unglamorous until the first time a job asks you to format a date or explain why 0.1 plus 0.2 does not equal 0.3. Little potholes like that are exactly what separates people who studied JavaScript from people who have used it.
From playground to a real dev setup
The last stretch is the one I insisted on including: installing Node and npm, spinning up a Vite project, understanding the generated file structure, installing dependencies, and splitting your code into ES modules with clean imports and exports. Self-taught developers often know the language but panic at the tooling. Finishing this course means the terminal side of a junior job will already look familiar.
Who should start here
Complete beginners, and anyone whose JavaScript knowledge is a pile of half-remembered tutorial fragments. If that second group is you, the section-end projects will show you exactly which pieces never actually stuck.
Who should skip it: if you already write JavaScript comfortably at work, you will be bored. Go straight to a framework, ideally the React JS Job Ready course. And to be clear about what this is, it is a language course. No React, no frameworks, by design. If you are still deciding which side of the stack to aim for, I broke that choice down in front end vs back end.
What you'll learn
- ✓ Write and run your first scripts in the browser console and understand where JavaScript fits next to HTML and CSS
- ✓ Control programs with variables, operators, conditionals, and every kind of loop
- ✓ Write functions as declarations, expressions, and arrows, and understand scope and hoisting
- ✓ Work with arrays and objects, including destructuring and the this keyword
- ✓ Process data with map, filter, and reduce, and chain them into pipelines
- ✓ Manipulate the DOM, handle events, and validate forms with custom error messages
- ✓ Fetch live API data with promises and async await, and handle errors cleanly
- ✓ Set up a real local workflow with Node, npm, Vite, and ES modules
Course Curriculum
23 sections · 195 lessons
1
JavaScript Foundations
8 lessons
- What Is JavaScript & Where It Runs
- JavaScript vs HTML vs CSS
- How JavaScript Works in the Browser
- Setting Up Your JavaScript Environment
- Using the Browser Console
- Writing Your First JavaScript Script
- Personal Greeting Script
- Testing Runtime Values vs Code Patterns
2
Variables & Data Types
16 lessons
- Variables: var, let, and const
- Naming Variables the Right Way
- Primitive Data Types Overview
- Strings & String Methods
- Numbers & Math Operations
- Booleans & Truthy / Falsy Values
- Undefined vs Null
- Type Coercion & Type Conversion
- Arithmetic Operators
- Assignment Operators
- Comparison Operators
- Logical Operators
- Operator Precedence
- Short-Circuit Evaluation
- Personal Information Card
- Calculator App Project
3
Control Flow & Conditions
7 lessons
- If Statements
- Else & Else If
- Nested Conditions
- Switch Statements
- Ternary Operator
- Guard Clauses & Early Returns
- Decision Maker App
4
Functions
9 lessons
- What Is a Function
- Function Declarations
- Function Expressions
- Arrow Functions
- Parameters & Arguments
- Return Values
- Default Parameters
- Callback Functions
- Function Toolkit Library
5
Scope & Hoisting
7 lessons
- Global Scope
- Function Scope
- Block Scope
- Hoisting Explained
- Temporal Dead Zone
- Best Practices for Scope
- Scope Demonstration App
6
Arrays
8 lessons
- Creating Arrays
- Accessing Array Elements
- Array Length & Indexing
- Common Array Methods
- Mutating vs Non-Mutating Methods
- Looping Through Arrays
- Array Destructuring
- To-Do List Manager
7
Objects
9 lessons
- What Are Objects
- Creating Objects
- Accessing Properties
- Updating & Deleting Properties
- Object Methods
- this Keyword
- Object Destructuring
- Nested Objects
- User Profile Object That Holds Users Data
8
Loops & Iteration
8 lessons
- While Loops
- Do While Loops
- For Loops
- For…of Loop
- For…in Loop
- Breaking & Continuing Loops
- When to Use Each Loop
- Loop Over User Data
9
Higher-Order Functions
8 lessons
- What Are Higher-Order Functions
- forEach
- map
- filter
- reduce
- Chaining Methods
- Writing Your Own Higher-Order Functions
- Data Processing Dashboard
10
Strings, Numbers & Dates
7 lessons
- Advanced String Methods
- Template Literals
- Number Precision Issues
- Math Object Deep Dive
- Working With Dates
- Formatting Dates & Times
- Date & Time Utility App
11
DOM Fundamentals
7 lessons
- What Is the DOM
- Selecting Elements
- Changing Text & HTML
- Modifying Styles
- Creating & Removing Elements
- DOM Traversal
- Dynamic Content Generator
12
Events & User Interaction
9 lessons
- What Are Events
- Event Listeners
- Mouse Events
- Keyboard Events
- Form Events
- Event Object
- Event Bubbling & Capturing
- Event Delegation
- Interactive Color Changer
13
Forms & Validation
7 lessons
- Working With Form Inputs
- Reading User Input
- Preventing Default Behavior
- Basic Form Validation
- Custom Error Messages
- Real-Time Validation
- Registration Form with Validation
14
Asynchronous JavaScript
7 lessons
- What Is Asynchronous JavaScript
- Callbacks Explained
- Promises
- .then() & .catch()
- Async & Await
- Error Handling in Async Code
- Async Task Manager
15
Fetch API & APIs
7 lessons
- What Is an API
- HTTP Methods Explained
- Fetching Data With Fetch
- Handling JSON
- Error Handling With Fetch
- Displaying API Data in the DOM
- Pokédex with API Integration
16
Classes & OOP
8 lessons
- What Is Object-Oriented Programming
- Constructor Functions
- ES6 Classes
- Class Methods
- Inheritance
- Encapsulation
- When to Use Classes
- Library Management System
17
Error Handling & Debugging
6 lessons
- Common JavaScript Errors
- Using console.log Effectively
- Try / Catch Blocks
- Custom Errors
- Debugging in DevTools
- Error Handler Utility
18
Browser Storage
6 lessons
- What Is Local Storage
- Saving Data to Local Storage
- Reading & Removing Data
- Session Storage
- Use Cases for Browser Storage
- Persistent Notes App
19
Performance & Best Practices
6 lessons
- Writing Clean JavaScript
- Avoiding Common Mistakes
- Performance Optimization Basics
- Memory Leaks
- Code Readability & Maintainability
- Optimized Task Tracker
20
Modern JavaScript (ES6+)
14 lessons
- ES6 Introduction & Why It Matters
- New Features Overview
- Arrow Functions
- Template Literals
- Destructuring Arrays & Objects
- Spread Operator (...)
- Rest Parameters
- Writing Future-Proof JavaScript
- Default Function Parameters
- Enhanced Object Literals
- Optional Chaining (?.)
- Nullish Coalescing (??)
- Modern Array Methods – map, filter, reduce
- Refactoring Old JavaScript to Modern Syntax
21
Local Development & JavaScript Modules
25 lessons
- Why You Need a Local Development Environment
- Installing Node.js & NPM
- What Is Vite and Why We Use It
- Creating Your First Vite Project
- Understanding the Generated Project Structure
- Running the Local Dev Server
- Editing Files and Seeing Live Changes
- Installing Dependencies with NPM
- Building the Project for Production
- Quick Exercise – Create a Simple App Locally
- Recap – Your Local JavaScript Workspace
- What Are JavaScript Modules?
- CommonJS vs ES Modules
- import vs require
- Named Exports vs Default Exports
- Exporting Functions, Objects, and Variables
- Importing Modules Across Files
- Organizing Files and Folder Structure
- Using Built-In Node Modules (fs, path)
- Installing Third-Party Packages with NPM
- Creating Your Own Utility Module
- Module Scope and Encapsulation
- Best Practices for Modular Code
- Mini Exercise – Build a Reusable Module
- Recap – Modules in Real Applications
22
Interactive Lessons
0 lessons
23
JavaScript Modules
6 lessons
- What Are Modules
- Exporting & Importing Code
- Default vs Named Exports
- Organizing JavaScript Files
- Module Best Practices
- Modular Calculator App
Before you start
- ✓ Basic familiarity with HTML helps, but no JavaScript experience is expected
- ✓ A computer with a browser. The local tooling section walks through every install