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!
Lo que serás capaz de hacer
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!
- 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.
Temario
UNIDAD 1 - Welcome, Welcome, Welcome! · 4 leccionesUNIDAD 1 - Welcome, Welcome, Welcome!
UNIDAD 1 - Welcome, Welcome, Welcome!
- Course Structure and Projects
- Read Before You Start!
- Watch Before You Start!
- Setting Up Our Code Editor
UNIDAD 2 - JavaScript Fundamentals – Part 1 · 32 leccionesUNIDAD 2 - JavaScript Fundamentals – Part 1
UNIDAD 2 - JavaScript Fundamentals – Part 1
- Section Intro
- Hello World!
- A Brief Introduction to JavaScript
- Linking a JavaScript File
- Values and Variables
- Practice Assignments
- Data Types
- let, const and var
- Basic Operators
- Operator Precedence
- A Note About Challenges
- CHALLENGE #1
- CHALLENGE #1: Video Solution
- Strings and Template Literals
- Taking Decisions: if / else Statements
- CHALLENGE #2
- CHALLENGE #2: Video Solution
- Type Conversion and Coercion
- Truthy and Falsy Values
- Equality Operators: == vs. ===
- Boolean Logic
- Logical Operators
- CHALLENGE #3
- CHALLENGE #3: Video Solution
- The switch Statement
- Statements and Expressions
- The Conditional (Ternary) Operator
- CHALLENGE #4
- CHALLENGE #4: Video Solution
- JavaScript Releases: ES5, ES6+ and ESNext
- Section Summary PDF
- Test Your Fundamental Knowledge 1! Ready to Move On?
UNIDAD 3 - JavaScript Fundamentals – Part 2 · 26 leccionesUNIDAD 3 - JavaScript Fundamentals – Part 2
UNIDAD 3 - JavaScript Fundamentals – Part 2
- Section Intro
- Activating Strict Mode
- Functions
- Function Declarations vs. Expressions
- Arrow Functions
- Functions Calling Other Functions
- Reviewing Functions
- CHALLENGE #1
- CHALLENGE #1: Video Solution
- Introduction to Arrays
- Basic Array Operations (Methods)
- CHALLENGE #2
- CHALLENGE #2: Video Solution
- Introduction to Objects
- Dot vs. Bracket Notation
- Object Methods
- CHALLENGE #3
- CHALLENGE #3: Video Solution
- Iteration: The for Loop
- Looping Arrays, Breaking and Continuing
- Looping Backwards and Loops in Loops
- The while Loop
- CHALLENGE #4
- CHALLENGE #4: Video Solution
- Section Summary PDF
- Test Your Fundamental Knowledge 2! Ready to Move On?
UNIDAD 4 - How to Navigate This Course · 2 leccionesUNIDAD 4 - How to Navigate This Course
UNIDAD 4 - How to Navigate This Course
- Pathways and Section Roadmaps
- Course Pathways
UNIDAD 5 - Developer Skills & Editor Setup · 14 leccionesUNIDAD 5 - Developer Skills & Editor Setup
UNIDAD 5 - Developer Skills & Editor Setup
- Section Intro
- Section Roadmap
- Setting up Prettier and VS Code
- Installing Node.js and Setting Up a Dev Environment
- Learning How to Code
- Help Mike Learn How to Code
- How to Think Like a Developer: Become a Problem Solver!
- Help Sofia Think Like a Developer
- 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
UNIDAD 6 - [OPTIONAL] HTML & CSS Crash Course · 5 leccionesUNIDAD 6 - [OPTIONAL] HTML & CSS Crash Course
UNIDAD 6 - [OPTIONAL] HTML & CSS Crash Course
- Section Intro
- Basic HTML Structure and Elements
- Attributes, Classes and IDs
- Basic Styling with CSS
- Introduction to the CSS Box Model
UNIDAD 7 - JavaScript in the Browser: DOM and Events [PROJECT] · 19 leccionesUNIDAD 7 - JavaScript in the Browser: DOM and Events [PROJECT]
UNIDAD 7 - JavaScript in the Browser: DOM and Events [PROJECT]
- Section Intro
- Section Roadmap
- 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
UNIDAD 8 - How JavaScript Works Behind the Scenes · 15 leccionesUNIDAD 8 - How JavaScript Works Behind the Scenes
UNIDAD 8 - How JavaScript Works Behind the Scenes
- Section Intro
- Section Roadmap
- 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
UNIDAD 9 - Data Structures, Modern Operators and Strings · 27 leccionesUNIDAD 9 - Data Structures, Modern Operators and Strings
UNIDAD 9 - Data Structures, Modern Operators and Strings
- Section Intro
- Section Roadmap
- Destructuring Arrays
- Practice Assignments
- 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
UNIDAD 10 - A Closer Look at Functions · 14 leccionesUNIDAD 10 - A Closer Look at Functions
UNIDAD 10 - A Closer Look at Functions
- Section Intro
- Section Roadmap
- 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
UNIDAD 11 - Working With Arrays [PROJECT] · 32 leccionesUNIDAD 11 - Working With Arrays [PROJECT]
UNIDAD 11 - Working With Arrays [PROJECT]
- Section Intro
- Section Roadmap
- 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
UNIDAD 12 - Numbers, Dates, Intl and Timers [PROJECT] · 15 leccionesUNIDAD 12 - Numbers, Dates, Intl and Timers [PROJECT]
UNIDAD 12 - Numbers, Dates, Intl and Timers [PROJECT]
- Section Intro
- Section Roadmap
- 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
UNIDAD 13 - Advanced DOM and Events [PROJECT] · 23 leccionesUNIDAD 13 - Advanced DOM and Events [PROJECT]
UNIDAD 13 - Advanced DOM and Events [PROJECT]
- Section Intro
- Section Roadmap
- 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
UNIDAD 14 - Object-Oriented Programming (OOP) With JavaScript · 23 leccionesUNIDAD 14 - Object-Oriented Programming (OOP) With JavaScript
UNIDAD 14 - Object-Oriented Programming (OOP) With JavaScript
- Section Intro
- Section Roadmap
- 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
UNIDAD 15 - Mapty App: OOP, Geolocation, External Libraries, and More! [PROJECT] · 17 leccionesUNIDAD 15 - Mapty App: OOP, Geolocation, External Libraries, and More! [PROJECT]
UNIDAD 15 - Mapty App: OOP, Geolocation, External Libraries, and More! [PROJECT]
- Section Intro
- Section Roadmap
- Project Overview
- How to Plan a Web Project
- Help Maya Plan a 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
UNIDAD 16 - Asynchronous JavaScript: Promises, Async/Await, and AJAX · 24 leccionesUNIDAD 16 - Asynchronous JavaScript: Promises, Async/Await, and AJAX
UNIDAD 16 - Asynchronous JavaScript: Promises, Async/Await, and AJAX
- Section Intro
- Section Roadmap
- Asynchronous JavaScript, AJAX and APIs
- IMPORTANT: API URL Change
- 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
UNIDAD 17 - Modern JavaScript Development: Modules, Tooling, and Functional · 16 leccionesUNIDAD 17 - Modern JavaScript Development: Modules, Tooling, and Functional
UNIDAD 17 - Modern JavaScript Development: Modules, Tooling, and Functional
- Section Intro
- Section Roadmap
- 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
UNIDAD 18 - Forkify App: Building a Modern Application [PROJECT] · 27 leccionesUNIDAD 18 - Forkify App: Building a Modern Application [PROJECT]
UNIDAD 18 - Forkify App: Building a Modern Application [PROJECT]
- Section Intro
- Section Roadmap
- Project Overview and Planning (I)
- Latest Code Updates (IMPORTANT!)
- 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
UNIDAD 19 - Setting Up Git and Deployment · 7 leccionesUNIDAD 19 - Setting Up Git and Deployment
UNIDAD 19 - Setting Up Git and Deployment
- Section Intro
- Section Roadmap
- Simple Deployment With Netlify
- Setting Up Git and GitHub
- Git Fundamentals
- Pushing to GitHub
- Setting Up Continuous Integration With Netlify
UNIDAD 20 - The End! · 2 leccionesUNIDAD 20 - The End!
UNIDAD 20 - The End!
- Where to Go from Here
- My Other Courses + Updates
UNIDAD 21 - [LEGACY] Access the Old Course · 1 leccionesUNIDAD 21 - [LEGACY] Access the Old Course
UNIDAD 21 - [LEGACY] Access the Old Course
- Access the Old Course
Tu certificado lo emite la SEP, no solo una plataforma
Al demostrar la competencia recibes un certificado emitido por la Secretaría de Educación Pública a través del Gobierno del Estado de México: un documento oficial que puedes presentar con confianza ante cualquier empleador o institución.
Tu certificado con INEC
- Lo emite la Secretaría de Educación Pública (SEP), a través del Gobierno del Estado de México
- Documento oficial con folio verificable en línea
- Lo otorga la Universidad Tecnológica Fidel Velázquez
Otras plataformas en línea
- Constancia privada emitida por la misma plataforma
- Solo acredita horas cursadas o asistencia
- Sin respaldo de una autoridad educativa
Tu itinerario, de la inscripción al certificado
- 1
Inscripción con pago único
Pagas $2,800 MXN una sola vez y entras de inmediato al curso.
- 2
Estudias a tu ritmo
21 unidades con videos, lecturas y actividades, disponibles 24/7 durante 12 meses.
- 3
Cuestionarios por unidad
2 cuestionarios para comprobar lo aprendido.
- 4
Certificado
Emitido por la SEP a través del Gobierno del Estado de México, con folio verificable.
Un certificado oficial de la SEP
- Emitido por la Secretaría de Educación Pública (SEP), a través del Gobierno del Estado de México. No es una constancia privada: es un documento oficial, y ese respaldo marca la diferencia frente a otras plataformas en línea.
- Contenido impartido por Jonas Schmedtmann.
- Folio y QR verificables para compartirlo con quien te contrate.
Empieza hoy, a tu ritmo
Un solo pago y acceso inmediato al curso completo durante 12 meses.
- 21 unidades · 345 lecciones · 60 h
- 12 meses de acceso
- 2 cuestionarios de evaluación
- Certificado emitido por la SEP (Gob. del Estado de México) con folio verificable
Sobre tu inscripción
¿Cómo es el pago?
Un solo pago de $2,800 MXN. No hay mensualidades ni cargos recurrentes.
¿Cuánto tiempo tengo acceso?
12 meses desde tu inscripción, 24/7, para avanzar a tu ritmo.
¿Quién imparte el contenido?
El curso es impartido por Jonas Schmedtmann; INEC gestiona tu inscripción, evaluación y certificado.
¿Qué pasa cuando vence mi acceso?
Puedes renovar tu cuenta tú mismo desde la plataforma, sin trámites ni esperas.


