دوره جامع جاوااسکریپت ۲۰۲۵ – از مبتدی تا متخصص
دوره The Complete JavaScript Course 2025: From Zero to Expert یکی از کاملترین منابع آموزشی برای تسلط بر زبان برنامهنویسی جاوااسکریپت است که توسط Jonas Schmedtmann در پلتفرم Udemy ارائه شده است. این دوره از پایهترین مباحث شروع میکند و به مرور مفاهیم پیشرفته و تکنیکهای حرفهای را آموزش میدهد.
در طی این آموزش، با ساخت پروژههای متنوع و کاربردی، مهارت خود را در توسعه وب با جاوااسکریپت افزایش میدهید. مفاهیمی مثل متغیرها، توابع، حلقهها، آرایهها، آبجکتها، کلاسها، مدرنسازی با ES6+، async/await، مدیریت خطا، کار با API و بسیاری دیگر بهصورت عملی و پروژهمحور تدریس میشود.
این دوره نهتنها برای مبتدیها عالی است، بلکه برای توسعهدهندگان متوسط هم یک منبع بهروزرسانی و تسلط بر مفاهیم پیشرفته محسوب میشود. در پایان این دوره شما آماده ورود به بازار کار و پروژههای واقعی خواهید بود.
سرفصل های دوره
Course Structure and Projects
Watch Before You Start!
Setting Up Our Code Editor
Section Intro
Hello World!
A Brief Introduction to JavaScript
Linking a JavaScript File
Values and Variables
Data Types
let, const and var
Basic 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
Pathways and Section Roadmaps
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
Basic HTML Structure and Elements
Attributes, Classes and IDs
Basic Styling with CSS
Introduction to the CSS Box Model
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
پیشنیاز های دوره چه چیزهایی هستند؟
- ندارد
نظرات دانشجویان
مدرس دوره

کدیاد پلاس (Codeyad Plus)
سوالات متداول
بله، آموزش از سطح صفر شروع میشود و بهتدریج به مباحث پیشرفته میپردازد.
بله، چندین پروژه واقعی شامل بازی، اپلیکیشن حسابداری، و کار با API پیادهسازی میشود.
Jonas Schmedtmann، یکی از محبوبترین مدرسهای یودمی در زمینه وب و JavaScript.
بله، مفاهیم مدرن ES6، ES7 و بالاتر بهصورت کامل آموزش داده شده است.
فقط داشتن انگیزه! هیچ تجربه قبلی در برنامهنویسی لازم نیست.