Home
Course: JavaScript
A JavaScript course focused on turning programming fundamentals into real frontend code: variables, control flow, functions, DOM, events and practical browser work.
Tests
Check your knowledge of JavaScript.
Lessons
62
1
Foundations
JavaScript introduction: think in behavior, not in magic
Learn what JavaScript solves in a real application, how it runs in the browser, and which mental model helps you move from raw data to visible behavior.
2 Foundations
JavaScript tools: your real working environment
Learn how to build a solid technical setup with VS Code and DevTools so you can run, inspect and debug JavaScript from the very beginning of the course.
3 Foundations
Browser console: practical debugging from day one
Use the console as a real working tool: intentional logs, readable errors, tables, timing checks and a debugging flow you can reuse in every lesson.
4 Foundations
JavaScript syntax: write code people can read and maintain
Learn how to structure statements, blocks and comments with intention so you avoid basic errors and build a strong foundation for the rest of the course.
5 Foundations
Variables in JavaScript: model data with intention
Learn when to use `const` and `let`, how to read basic types and how to avoid common conversion mistakes so your logic is safer from the start.
6 Foundations
Types and coercion in JavaScript: avoid silent bugs
Understand how JavaScript treats types and when it converts values automatically so your operations and comparisons stay predictable.
7 Foundations
Operators in JavaScript: think like the engine to make better decisions
Master arithmetic, comparison, logical and assignment operators so you can build reliable conditions, avoid coercion bugs and write clearer business rules.
8 Foundations
Control flow: design clear decisions with if, else if and switch
Learn how to model business decisions with clean branches, avoid chaotic nesting and debug conditions so your code takes the right path every time.
9 Foundations
Loops in JavaScript: repeat work without breaking logic or performance
Learn how to use `for` and `while` safely, avoid infinite loops, process real data and build accumulation, counting and filtering patterns step by step.
10 Foundations
Functions in JavaScript: encapsulate logic with intention
Learn the foundations of functions so you can avoid duplication, improve readability and build reusable pieces with parameters, return values and modern syntax.
11 Foundations
Scope, hoisting and the TDZ: why your variable exists or fails on each line
Learn lexical scope, hoisting and the temporal dead zone so you can avoid ReferenceError, fix variable shadowing and write more predictable functions.
12 Foundations
Debugging in JavaScript: find the exact bug before touching the code
Learn professional debugging with breakpoints, console traces and stack trace reading so you can fix errors with method instead of guesswork.
13 Foundations
Arrays in JavaScript: lists with structure and control
Learn how to create, read, loop through and modify arrays while understanding indexes, length and mutation so you can build list logic without common beginner mistakes.
14 Foundations
Objects in JavaScript: represent real entities
Learn how to model data with objects, access properties, create methods with `this` and work safely with dynamic keys and optional access.
15 Data structures
Classes in JavaScript: constructor, methods and instances
Learn how to use `class` syntax to create objects with the same structure, initialize properties through a constructor and encapsulate behavior inside instance methods.
16 Data structures
Destructuring in arrays and objects: read complex data with cleaner code
Learn how to use destructuring in real frontend scenarios to extract properties, rename variables, apply defaults and work with API responses without noise.
17 Data structures
Spread and rest: copy, merge and group data without dangerous mutations
Master the spread (`...`) and rest operators so you can work with arrays and objects immutably, build flexible functions and avoid bugs caused by shared references.
18 Data structures
Array methods in production: use map, filter and reduce with judgment
Learn how to transform, filter and aggregate collections with `map`, `filter` and `reduce` in realistic frontend flows while keeping the code readable and easy to debug.
19 Foundations
Strings and numbers without surprises: parsing, formatting and precision
Learn how to convert and format user input and API values without accidental coercion or rounding mistakes, using a safer workflow for real frontend code.
20 Foundations
Dates and internationalization with Intl
Learn how to work with dates and money without silent errors: create reliable `Date` objects, format values by locale with `Intl` and avoid common timezone mistakes.
21 Data structures
Array vs Object vs Set vs Map: choose the right structure
Learn how to select the right data structure based on the job: ordered lists, simple dictionaries, unique values or key-value pairs with flexible keys.
22 Foundations
Error handling with try/catch without breaking the UX
Learn how to detect, capture and communicate errors professionally with `try/catch`, `throw` and `finally` while keeping the interface stable for the user.
23 Foundations
ESM modules: organize JavaScript by responsibility
Learn how to split code into reusable files with `export` and `import`, avoiding hidden dependencies and improving maintainability, testing and scalability.
24 DOM
Applied DOM work: render, update and debug interfaces without chaos
Learn how to work with the DOM in real interface flows: reliable node selection, dynamic list rendering, visual state updates and patterns that avoid fragile manipulation.
25 DOM
Events in real interfaces: from basic clicks to smart delegation
Learn how to design maintainable interactions with `addEventListener`, the `event` object, `preventDefault`, propagation control and delegation for dynamic lists.
26 DOM
Event delegation: fewer listeners, more scalability
Learn how to handle events in dynamic lists through a single listener on the container using `event.target`, `closest()` and clear guard clauses.
27 DOM
Dynamic rendering: build lists and cards from data
Learn how to turn arrays into real interface output through render templates, empty/loading/error states and DOM update patterns that stay maintainable.
28 DOM
DOM performance: avoid reflows and unnecessary work
Learn how to reduce rendering cost by batching DOM changes and minimizing conflicting layout reads and writes.
29 DOM
Accessibility in DOM interactions with JavaScript
Build interactive components that work well with keyboard navigation, screen readers and correct focus management.
30 DOM
Canvas 2D with JavaScript: draw data on a surface
Learn how to use the `canvas` element and its 2D context to clear, draw and repaint shapes from JavaScript-controlled data.
31 Validacion
Production-ready forms: layered validation, UX and reliable submission
Build robust forms end to end with `submit`, `FormData`, per-field validation, accessible feedback and controlled HTTP submission with `fetch`.
32 DOM
Browser persistence: `localStorage` and `sessionStorage`
Store useful client-side state with clear criteria: what to persist, how to serialize it and how to avoid inconsistent UI behavior.
33 DOM
Detect the user's language and redirect to the right version
Read the browser language, normalize locale values and redirect safely to the correct language version without loops or a frustrating user experience.
34 Async
Async foundations: event loop, call stack and queues
Understand why asynchronous code runs in a specific order so you can avoid timing bugs in UI, promises and timers.
35 Async
Promises in JavaScript: clean chaining and error handling
Master `then`, `catch` and `finally`, compose promises clearly and avoid callback hell when asynchronous flows start to grow.
36 Async
Advanced async/await: clear, safe and scalable async flows
Use async/await in real scenarios with sequential versus parallel work, layered error handling, UI states and readable asynchronous architecture.
37 Async
Production-ready fetch: clear HTTP contracts and resilient UX
Use `fetch()` in real interface flows with explicit `response.ok` validation, safe parsing, JSON requests, cancellation and controlled UI state.
38 Async
Advanced fetch: cancel requests, retry safely and avoid races
Build resilient HTTP request flows with `AbortController`, timeouts, retry with backoff and protection against stale responses in dynamic UIs.
39 Foundations
Use `Promise.all`, `allSettled`, `race` and `any` with intent
Coordinate multiple asynchronous tasks with the right promise combinator depending on whether you need total success, partial resilience, the fastest result or the first successful answer.
40 Async
Use browser APIs with intent: Clipboard, URL, History and observers
Work with modern browser APIs such as Clipboard, URL, History and IntersectionObserver while keeping compatibility, permissions and real UX in mind.
41 Async
Real-time basics: WebSocket versus SSE
Compare WebSocket and Server-Sent Events with clear technical criteria so you can choose the right real-time channel without unnecessary complexity.
42 Quality
Clean JavaScript: write code people can safely change
Apply practical clean code principles in JavaScript through naming, function boundaries, cohesion and refactors that improve maintainability instead of chasing clever syntax.
43 Quality
Practical JavaScript patterns without overengineering
Use module, factory, strategy and composition patterns where they actually reduce complexity and duplication instead of making the codebase harder to read.
44 Quality
Immutability in practice: reduce bugs from accidental mutation
Use practical immutability with objects and arrays so UI state and business logic stay easier to reason about, test and debug.
45 Quality
Measure and Optimize JavaScript Performance
Learn to investigate performance with evidence, identify the real bottleneck, and apply optimizations that matter before wasting time on irrelevant micro-tweaks.
46 Quality
Frontend Security: Prevent XSS and Common JavaScript Mistakes
Learn how to reduce frontend attack surface by rendering user data safely, validating inputs with discipline, and avoiding fragile patterns that leak risk into production.
47 Quality
JavaScript Testing: Useful Unit and Integration Tests
Write tests that actually protect behavior, catch regressions, and give you confidence to refactor instead of just adding noise to the project.
48 Quality
NPM Tooling: Manage Dependencies and Scripts with Discipline
Understand how `package.json`, scripts, semantic versioning, and lockfiles work together so your JavaScript project stays reproducible instead of fragile.
49 Quality
Bundling, Modules, and Build Strategy
Understand how bundling decisions affect load time, caching, and maintainability so you can build JavaScript delivery strategies that serve the product instead of hurting it.
50 Quality
How the Engine Thinks: Stable Patterns for Faster JavaScript
Build a practical mental model of how modern JavaScript engines optimize work so you can avoid unstable object shapes, unnecessary de-optimizations, and performance myths.
51 Quality
From JavaScript to TypeScript: A Practical Migration Path
Learn how to move from JavaScript to TypeScript gradually, starting with the parts that reduce real bugs and improve refactoring safety without freezing delivery.
52 Node.js
Understanding the Node.js Runtime
Learn what changes when JavaScript runs outside the browser, how the Node event loop affects backend behavior, and how to structure simple scripts without creating accidental chaos.
53 Node.js
CommonJS, ESM, and Clean Backend Module Boundaries
Learn how to divide backend code into meaningful modules, understand the difference between CommonJS and ESM, and avoid dependency cycles that make Node projects harder to maintain.
54 Node.js
Reading and Writing Files Safely in Node
Use `fs/promises` to work with files without blocking the event loop, validate paths defensively, and handle common file-system failures as expected cases instead of surprises.
55 Node.js
Build a Basic HTTP API with Native Node
Create small but solid APIs with Node's native `http` module by understanding routes, methods, status codes, JSON responses, and the difference between a valid result and a useful contract.
56 Node.js
REST APIs with Express and Middleware
Build cleaner REST APIs with Express by separating routes, controllers, services, and middleware instead of collapsing everything into one large file.
57 Node.js
Authentication Fundamentals: Sessions, JWT, and Access Control
Understand the difference between authentication and authorization, compare sessions with JWT-based approaches, and design access flows that stay safer and easier to reason about.
58 Fundamentals
Integration Challenges (1): Think, Build, and Debug Like Real Work
Consolidate your JavaScript foundations with compound challenges that combine logic, arrays, DOM work, events, and incremental validation instead of isolated exercises.
59 Quality
Integration Challenges (2): Async Flows, APIs, and UI State
Practice realistic frontend scenarios that combine `fetch`, `async/await`, HTTP validation, data transformation, and UI state management under conditions that resemble real product work.
60 Fundamentals
Final Project 1: A Dashboard with API Data and Filters
Build a realistic dashboard that consumes remote data, filters and transforms it for UI, and handles loading and error states with a maintainable structure.
61 Fundamentals
Final Project 2: A Small Full-Stack CRUD App
Connect frontend JavaScript with a Node backend to build a small CRUD application with clear API contracts, validation, UI state, and a workflow that feels closer to real product development.
62 Fundamentals
Professional Wrap-Up: From Finishing the Course to Building Real Work
Turn the course into visible momentum with a 60-day action plan, clearer project priorities, and a practical next-step path toward React, TypeScript, or stronger JavaScript portfolio work.
No lessons for this filter.
Page 1 of 1
Roadmap
Desarrollo Web
Ruta principal de frontend, frameworks y stack de desarrollo web profesional.
Lenguajes pilares del desarrollador frontend