https://www.udemy.
com/course/the-complete-javascript-course/
Javascript in 20 Days (if spent 2 to 3 hours per day)
Sr No Days
1
2
3
4
5
6 Day 1
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 Day 2
27
28
29
30
31
32
33
34
35
36
37
38
39
40
Day 3
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55 Day 4
56
57
58
59
60
61
62
63
64
65
66
67
68
Day 5
69
70
71 Day 5
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87 Day 6
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103 Day 7
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122 Day 8
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137 Day 9
138
139
140
141
142
143
144
145
146
147
148
149
Day 10
150
151
152
Day 10
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
Day 11
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183 Day 12
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202 Day 13
203
204
205
206
207
208
209
210
211
212
213
214
215
216
Day 14
217
218
219
220
221
222
223
224
225
226
227
228
Day 15
229
230
231 Day 15
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247 Day 16
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266 Day 17
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282 Day 18
283
284
285
286
287
288
289
290
291
292
293
294
295
296
Day 19
297
298
299
300
301
302
303
304
305
306
307
308
309
310
Day 20
311
312 Day 20
313
314
315
316
317
318
319
320
ps://www.udemy.com/course/the-complete-javascript-course/
Javascript in 20 Days (if spent 2 to 3 hours per day) Status
Topics to cover
Welcome, Welcome, Welcome!
Course Structure and Projects Done
Read Before You Start! Done
Watch Before You Start! Done
Migration Guide to v2 + Old Course Done
Setting Up Our Code Editor Done
JavaScript Fundamentals – Part 1
Section Intro Done
Hello World! Done
A Brief Introduction to JavaScript Done
Linking a JavaScript File Done
Values and Variables Done
Practice Assignments Done
Data Types Done
let, const and var Done
Basic Operators Done
Operator Precedence Done
Coding Challenge #1 Done
Strings and Template Literals Done
Taking Decisions: if / else Statements Done
Coding Challenge #2 Done
Type Conversion and Coercion Done
Truthy and Falsy Values Done
Equality Operators: == vs. === Done
Boolean Logic Done
Logical Operators Done
Coding Challenge #3 Done
The switch Statement Done
Statements and Expressions Done
The Conditional (Ternary) Operator Done
Coding Challenge #4 Done
JavaScript Releases: ES5, ES6+ and ESNext Done
JavaScript Fundamentals – Part 2
Section Intro Done
Activating Strict Mode Done
Functions Done
Function Declarations vs. Expressions Done
Arrow Functions Done
Functions Calling Other Functions Done
Reviewing Functions Done
Coding Challenge #1 Done
Introduction to Arrays Done
Basic Array Operations (Methods) Done
Coding Challenge #2 Done
Introduction to Objects Done
Dot vs. Bracket Notation Done
Object Methods Done
Coding Challenge #3 Done
Iteration: The for Loop Done
Looping Arrays, Breaking and Continuing Done
Looping Backwards and Loops in Loops Done
The while Loop Done
Coding Challenge #4 Done
How to Navigate This Course Done
Pathways and Section Roadmaps Done
Course Pathways Done
Developer Skills and Editor Setup
Section Intro Done
Section Roadmap Done
Setting up Prettier and VS Code Done
Installing Node.js and Setting Up a Dev Environment Done
Learning How to Code Done
How to Think Like a Developer: Become a Problem Solver! Done
Using Google, StackOverflow and MDN Done
Debugging (Fixing Errors) Done
Debugging with the Console and Breakpoints Done
Coding Challenge #1 Done
[OPTIONAL] HTML and CSS Crash Course
Section Intro Done
Basic HTML Structure and Elements Done
Attributes, Classes and IDs Done
Basic Styling with CSS Done
Introduction to the CSS Box Model
JavaScript in the Browser: DOM and Events Fundamentals
Section Intro Done
Section Roadmap Done
PROJECT #1: Guess My Number! Done
What's the DOM and DOM Manipulation Done
Selecting and Manipulating Elements Done
Handling Click Events Done
Implementing the Game Logic
Manipulating CSS Styles
Coding 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
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
Primitives vs. Objects (Primitive vs. Reference Types)
Primitives vs. Objects in Practice
Data Structures, Modern Operators and Strings
Section Intro
Section Roadmap
Destructuring Arrays
Destructuring Objects
The Spread Operator (...)
Rest Pattern and Parameters
Short Circuiting (andand and ||)
The Nullish Coalescing Operator (??)
Logical Assignment Operators
Coding Challenge #1
Looping Arrays: The for-of Loop
Enhanced Object Literals
Optional Chaining (?.)
Looping Objects: Object Keys, Values, and Entries
Coding Challenge #2
Sets
Maps: Fundamentals
Maps: Iteration
Summary: Which Data Structure to Use?
Coding Challenge #3
Working With Strings - Part 1
Working With Strings - Part 2
Working With Strings - Part 3
Coding Challenge #4
String Methods Practice
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
Coding Challenge #1
Immediately Invoked Function Expressions (IIFE)
Closures
More Closure Examples
Coding Challenge #2
Working With Arrays
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
Coding Challenge #1
Data Transformations: map, filter, reduce
The map Method
Computing Usernames
The filter Method
The reduce Method
Coding Challenge #2
The Magic of Chaining Methods
Coding Challenge #3
The find Method
Implementing Login
Implementing Transfers
The findIndex Method
some and every
flat and flatMap
Sorting Arrays
More Ways of Creating and Filling Arrays
Summary: Which Array Method to Use?
Array Methods Practice
Coding Challenge #4
Numbers, Dates, Intl and Timers
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
Operations With Dates
Internationalizing Dates (Intl)
Internationalizing Numbers (Intl)
Timers: setTimeout and setInterval
Implementing a Countdown Timer
Advanced DOM and Events
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
Lazy Loading Images
Building a Slider Component: Part 1
Building a Slider Component: Part 2
Lifecycle DOM Events
Efficient Script Loading: defer and async
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
Coding Challenge #1
ES6 Classes
Setters and Getters
Static Methods
Object.create
Coding Challenge #2
Inheritance Between "Classes": Constructor Functions
Coding Challenge #3
Inheritance Between "Classes": ES6 Classes
Inheritance Between "Classes": Object.create
Another Class Example
Encapsulation: Protected Properties and Methods
Encapsulation: Private Class Fields and Methods
Chaining Methods
ES6 Classes Summary
Coding Challenge #4
Mapty App: OOP, Geolocation, External Libraries, and More
Section Intro
Section Roadmap
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
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
Coding Challenge #1
Asynchronous Behind the Scenes: The Event Loop
The Event Loop in Practice
Building a Simple Promise
Promisifying the Geolocation API
Coding 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
Coding Challenge #3
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
Forkify App: Building a Modern Application
Section Intro
Section Roadmap
Project Overview and Planning (I)
Latest Code Updates (Parcel v2 and more)
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
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
The End!
Where to Go from Here
My Other Courses + Updates
[LEGACY] Access the Old Course
Access the Old Course