The Complete JavaScript Course 2025: From Zero to Expert!
The modern JavaScript course for everyone! Master JavaScript with projects, challenges and theory. Many courses in one!
The modern JavaScript course for everyone! Master JavaScript with projects, challenges and theory. Many courses in one!
The #1 bestselling JavaScript course on Udemy!
Just updated with ES2024 and ES2025!
"Really, really well made course. Super in-depth, with great challenges and projects that will solidify your Javascript understanding. I found the lectures were paced perfectly -- Jonas doesn't skip over anything that might be useful to a JS developer" — Carson Bartholomew
JavaScript is the most popular programming language in the world. It powers the entire modern web. It provides millions of high-paying jobs all over the world.
That's why you want to learn JavaScript too. And you came to the right place!
Why is this the right JavaScript course for you?
This is the most complete and in-depth JavaScript course on Udemy (and maybe the entire internet!). It's an all-in-one package that will take you from the very fundamentals of JavaScript, all the way to building modern and complex applications.
You will learn modern JavaScript from the very beginning, step-by-step. I will guide you through practical and fun code examples, important theory about how JavaScript works behind the scenes, and beautiful and complete projects.
You will become ready to continue learning advanced front-end frameworks like React, Vue, Angular, or Svelte.
You will also learn how to think like a developer, how to plan application features, how to architect your code, how to debug code, and a lot of other real-world skills that you will need in your developer job.
And unlike other courses, this one actually contains beginner, intermediate, advanced, and even expert topics, so you don't have to buy any other course in order to master JavaScript from the ground up!
But... You don't have to go into all these topics. This is a huge course, because, after all, it's "The Complete JavaScript Course". In fact, it's like many courses in one! But you can become an excellent developer by watching only parts of the course. That's why I built this course in a very modular way, and designed pathways that will take you through the course faster.
By the end of the course, you will have the knowledge and confidence that you need in order to ace your job interviews and become a professional developer.
Why am I the right JavaScript teacher for you?
My name is Jonas, I'm an experienced web developer and designer, and one of Udemy's top instructors. I have been teaching this bestselling course since 2016 to over 850,000 developers, always listening to feedback and understanding exactly how students actually learn.
I know how students learn JavaScript and what they need in order to master it. And with that knowledge, I designed the ideal course curriculum. It's a unique blend of real-world projects, deep explanations, theory lectures, and challenges, that will take you from zero to an expert and confident JavaScript developer in just a couple of weeks.
So what exactly is covered in the course?
Build 5 beautiful real-world projects for your portfolio! In these projects, you will learn how to plan and architect your applications using flowcharts and common JavaScript patterns
Master the JavaScript fundamentals: variables, if/else, operators, boolean logic, functions, arrays, objects, loops, strings, and more
Learn modern JavaScript (ES6+) from the beginning: arrow functions, destructuring, spread operator, default arguments, optional chaining, and more
How JavaScript works behind the scenes: engines, the call stack, hoisting, scoping, the 'this' keyword, reference values, and more.
Deep dive into functions: arrow functions, first-class and higher-order functions, bind, and closures.
Deep dive into object-oriented programming: prototypal inheritance, constructor functions (ES5), classes (ES6), encapsulation, abstraction, inheritance, and polymorphism. [This is like a small standalone course]
Deep dive into asynchronous JavaScript: the event loop, promises, async/await, and error handling. You will use these to access data from third-party APIs with AJAX calls. [This is like a small standalone course]
Learn modern tools that are used by professional web developers: NPM, Parcel, Babel, and ES6 modules
Check out the course curriculum for an even more detailed overview of the content :)
This is what's also included in the package:
Up-to-date HD-quality videos, that are easy to search and reference (great for Udemy Business learners)
Professional English captions (not the auto-generated ones)
Downloadable starter code and final code for each section
Downloadable slides for 40+ theory videos
25+ coding challenges and 25+ assignments to practice your new skills
Does any of these look like you? If so, then start this adventure today, and join me and 850,000+ other developers in the only JavaScript course that you will ever need!
Khu vực Câu hỏi thường gặp trống
Section Intro
Xem trướcHello World!
A Brief Introduction to JavaScript
Xem trướcLinking a JavaScript File
Values and Variables
Xem trướcData Types
Let, const and var
Xem trướcBasic Operators
Operator Precedence
CHALLENGE #1: Video Solution
Strings and Template Literals
Taking Decisions: if / else Statements
CHALLENGE #2: Video Solution
Type Conversion and Coercion
Truthy and Falsy Values
Equality Operators: == vs. ===
Boolean Logic
Logical Operators
CHALLENGE #3: Video Solution
The switch Statement
Statements and Expressions
The Conditional (Ternary) Operator
CHALLENGE #4: Video Solution
JavaScript Releases: ES5, ES6+ and ESNext
Section Intro
Activating Strict Mode
Functions
Function Declarations vs. Expressions
Arrow Functions
Functions Calling Other Functions
Reviewing Functions
CHALLENGE #1: Video Solution
Introduction to Arrays
Basic Array Operations (Methods)
CHALLENGE #2: Video Solution
Introduction to Objects
Dot vs. Bracket Notation
Object Methods
CHALLENGE #3: Video Solution
Iteration: The for Loop
Looping Arrays, Breaking and Continuing
Looping Backwards and Loops in Loops
The while Loop
CHALLENGE #4: Video Solution
Section Intro
Setting up Prettier and VS Code
Installing Node.js and Setting Up a Dev Environment
Learning How to Code
How to Think Like a Developer: Become a Problem Solver!
Using Google, StackOverflow and MDN
Debugging (Fixing Errors)
Debugging with the Console and Breakpoints
CHALLENGE #1
The Rise of AI Tools (ChatGPT, Copilot, Cursor AI, etc.)
Solving CHALLENGE #2 With AI
Section Intro
PROJECT #1: Guess My Number!
What's the DOM and DOM Manipulation
Selecting and Manipulating Elements
Handling Click Events
Implementing the Game Logic
Manipulating CSS Styles
CHALLENGE #1
Implementing Highscores
Refactoring Our Code: The DRY Principle
PROJECT #2: Modal Window
Working With Classes
Handling an "Esc" Keypress Event
PROJECT #3: Pig Game
Rolling the Dice
Switching the Active Player
Holding Current Score
Resetting the Game
Section Intro
An High-Level Overview of JavaScript
The JavaScript Engine and Runtime
Execution Contexts and The Call Stack
Scope and The Scope Chain
Scoping in Practice
Variable Environment: Hoisting and The TDZ
Hoisting and TDZ in Practice
The this Keyword
The this Keyword in Practice
Regular Functions vs. Arrow Functions
Memory Management: Primitives vs. Objects
Object References in Practice (Shallow vs. Deep Copies)
Memory Management: Garbage Collection
Section Intro
Destructuring Arrays
Destructuring Objects
The Spread Operator (...)
Rest Pattern and Parameters
Short Circuiting (&& and ||)
The Nullish Coalescing Operator (??)
Logical Assignment Operators
CHALLENGE #1
Looping Arrays: The for-of Loop
Enhanced Object Literals
Optional Chaining (?.)
Looping Objects: Object Keys, Values, and Entries
CHALLENGE #2
Sets
New Operations to Make Sets Useful!
Maps: Fundamentals
Maps: Iteration
Summary: Which Data Structure to Use?
CHALLENGE #3
Working With Strings - Part 1
Working With Strings - Part 2
Working With Strings - Part 3
CHALLENGE #4
String Methods Practice
Section Intro
Default Parameters
How Passing Arguments Works: Value vs. Reference
First-Class and Higher-Order Functions
Functions Accepting Callback Functions
Functions Returning Functions
The call and apply Methods
The bind Method
CHALLENGE #1
Immediately Invoked Function Expressions (IIFE)
Closures
More Closure Examples
CHALLENGE #2
Section Intro
Simple Array Methods
The New at Method
Looping Arrays: forEach
ForEach With Maps and Sets
PROJECT: "Bankist" App
Creating DOM Elements
CHALLENGE #1
Data Transformations: map, filter, reduce
The map Method
Computing Usernames
The filter Method
The reduce Method
CHALLENGE #2
The Magic of Chaining Methods
CHALLENGE #3
The find Method
Implementing Login
Implementing Transfers
The findIndex Method
The New findLast and findLastIndex Methods
Some and every
Flat and flatMap
CHALLENGE #4
Sorting Arrays
Array Grouping
More Ways of Creating and Filling Arrays
Non-Destructive Alternatives: toReversed, toSorted, toSpliced, with
Summary: Which Array Method to Use?
Array Methods Practice
CHALLENGE #5
Section Intro
Converting and Checking Numbers
Math and Rounding
The Remainder Operator
Numeric Separators
Working with BigInt
Creating Dates
Adding Dates to "Bankist" App
Fixing a Sorting Bug
Operations With Dates
Internationalizing Dates (Intl)
Internationalizing Numbers (Intl)
Timers: setTimeout and setInterval
Implementing a Countdown Timer
Section Intro
PROJECT: "Bankist" Website
How the DOM Really Works
Selecting, Creating, and Deleting Elements
Styles, Attributes and Classes
Implementing Smooth Scrolling
Types of Events and Event Handlers
Event Propagation: Bubbling and Capturing
Event Propagation in Practice
Event Delegation: Implementing Page Navigation
DOM Traversing
Building a Tabbed Component
Passing Arguments to Event Handlers
Implementing a Sticky Navigation: The Scroll Event
A Better Way: The Intersection Observer API
Revealing Elements on Scroll
Fixing a Small Scrolling Bug
Lazy Loading Images
Building a Slider Component: Part 1
Building a Slider Component: Part 2
Lifecycle DOM Events
Efficient Script Loading: defer and async
Section Intro
What is Object-Oriented Programming?
OOP in JavaScript
Constructor Functions and the new Operator
Prototypes
Prototypal Inheritance and The Prototype Chain
Prototypal Inheritance on Built-In Objects
CHALLENGE #1
ES6 Classes
Setters and Getters
Static Methods
Object.create
CHALLENGE #2
Inheritance Between "Classes": Constructor Functions
CHALLENGE #3
Inheritance Between "Classes": ES6 Classes
Inheritance Between "Classes": Object.create
Another Class Example
Encapsulation: Private Class Fields and Methods
Chaining Methods
ES6 Classes Summary
CHALLENGE #4
Section Intro
Project Overview
How to Plan a Web Project
Using the Geolocation API
Displaying a Map Using Leaflet Library
Displaying a Map Marker
Rendering Workout Input Form
Project Architecture
Refactoring for Project Architecture
Managing Workout Data: Creating Classes
Creating a New Workout
Rendering Workouts
Move to Marker On Click
Working with localStorage
Final Considerations
Section Intro
Asynchronous JavaScript, AJAX and APIs
Our First AJAX Call: XMLHttpRequest
[OPTIONAL] How the Web Works: Requests and Responses
Welcome to Callback Hell
Promises and the Fetch API
Consuming Promises
Chaining Promises
Handling Rejected Promises
Throwing Errors Manually
CHALLENGE #1
Asynchronous Behind the Scenes: The Event Loop
The Event Loop in Practice
Building a Simple Promise
Promisifying the Geolocation API
CHALLENGE #2
Consuming Promises with Async/Await
Error Handling With try...catch
Returning Values from Async Functions
Running Promises in Parallel
Other Promise Combinators: race, allSettled and any
CHALLENGE #3
Section Intro
An Overview of Modern JavaScript Development
An Overview of Modules in JavaScript
Exporting and Importing in ES6 Modules
Top-Level await (ES2022)
The Module Pattern
CommonJS Modules
A Brief Introduction to the Command Line
Introduction to NPM
Bundling With Parcel and NPM Scripts
Configuring Babel and Polyfilling
Review: Writing Clean and Modern JavaScript
Let's Fix Some Bad Code: Part 1
Declarative and Functional JavaScript Principles
Let's Fix Some Bad Code: Part 2
Section Intro
Project Overview and Planning (I)
Loading a Recipe from API
Rendering the Recipe
Listening For load and hashchange Events
The MVC Architecture
Refactoring for MVC
Helpers and Configuration Files
Event Handlers in MVC: Publisher-Subscriber Pattern
Implementing Error and Success Messages
Implementing Search Results - Part 1
Implementing Search Results - Part 2
Implementing Pagination - Part 1
Implementing Pagination - Part 2
Project Planning II
Updating Recipe Servings
Developing a DOM Updating Algorithm
Implementing Bookmarks - Part 1
Implementing Bookmarks - Part 2
Storing Bookmarks With localStorage
Project Planning III
Uploading a New Recipe - Part 1
Uploading a New Recipe - Part 2
Uploading a New Recipe - Part 3
Wrapping Up: Final Considerations
No coding experience is necessary to take this course! I take you from beginner to expert!
Any computer and OS will work — Windows, macOS or Linux. We will set up your text editor the course.
A basic understanding of HTML and CSS is a plus, but not a must! The course includes an HTML and CSS crash course.
Become an advanced, confident, and modern JavaScript developer from scratch
Build 6 beautiful real-world projects for your portfolio (not boring toy apps)
Become job-ready by understanding how JavaScript really works behind the scenes
How to think and work like a developer: problem-solving, researching, workflows
JavaScript fundamentals: variables, if/else, operators, boolean logic, functions, arrays, objects, loops, strings, etc.
Modern ES6+ from the beginning: arrow functions, destructuring, spread operator, optional chaining (ES2020), etc.
Modern OOP: Classes, constructors, prototypal inheritance, encapsulation, etc.
Complex concepts like the 'this' keyword, higher-order functions, closures, etc.
Asynchronous JavaScript: Event loop, promises, async/await, AJAX calls and APIs
How to architect your code using flowcharts and common patterns
Modern tools for 2022 and beyond: NPM, Parcel, Babel and ES6 modules
Practice your skills with 50+ challenges and assignments (solutions included)
Get fast and friendly support in the Q&A area
Course pathways: design your unique learning path according to your goals!
1.2
1 Học viên
275 Khóa học
1253 Đánh giá
Xin chào các bạn, tôi là Nguyễn Đình Cường, một lập trình viên và giảng viên đam mê công nghệ với hơn 15 năm kinh nghiệm trong ngành công nghiệp phần mềm. Tôi tốt nghiệp từ Bưu Chính Viễn Thông và đã từng làm việc cho một số công ty công nghệ hàng đầu như FPT Software và VinGroup. Với chuyên môn chính là phát triển ứng dụng web, tôi đã làm việc với nhiều công nghệ như HTML, CSS, JavaScript, React cho front-end và Node.js, Express, MongoDB cho back-end. Không chỉ dừng lại ở việc viết mã, tôi còn yêu thích tìm hiểu sâu về thiết kế hệ thống và kiến trúc phần mềm. Tôi tin rằng quá trình học lập trình không chỉ đơn thuần là lý thuyết, mà còn là sự trải nghiệm thực tế và giải quyết vấn đề. Trong các khóa học của mình, tôi cố gắng cung cấp cho học viên những bài giảng thú vị và dễ hiểu, cùng với các bài tập thực hành giúp củng cố kiến thức. Tôi hy vọng rằng qua các khóa học của mình, bạn sẽ không chỉ học được cách viết mã, mà còn phát triển tư duy lập trình và kỹ năng giải quyết vấn đề. Hãy cùng nhau khám phá thế giới lập trình và biến ý tưởng của bạn thành hiện thực! Nếu bạn có bất kỳ câu hỏi nào, đừng ngần ngại liên hệ với tôi. Tôi rất vui được hỗ trợ bạn trong hành trình học tập của mình!
Xem chi tiết