The Complete JavaScript Course 2023: From Zero to Expert!

68h 53m 44s
English
Paid

Course description

This is a truly complete JavaScript course, that goes beyond what other JavaScript courses out there teach you. 

I will take you from a complete JavaScript beginner to an advanced developer. You will not just learn the JavaScript language itself, you will also learn how to program. How to solve problems. How to structure and organize code using common JavaScript patterns.

Come with me on a journey with the goal of truly understanding the JavaScript language. And I explain everything on the way with great detail!


Read more about the course

You will learn "why" something works in JavaScript, not just "how". Because in the modern JavaScript world of today, you need more than just knowing how something works. You need to debug code, you need to understand code, you need to be able to think about code.

To achieve our goal together, the course contains coding sessions, coding challenges, theory lectures, real-world projects and a final course exam.

This course is different because it's not just about writing code, it's also about how and why code works the way it does. Because it's the perfect mix between theory and practice. Because it focuses not only on small coding examples, but also on real-world projects and use cases. 

So, by the end of the course, you will be a capable JavaScript developer, able to write, understand and debug JavaScript code using all the powerful features the language offers to us.

Here is exactly what we cover in this course:

• All the JavaScript and programming fundamentals: things like variables, data types, boolean logic, if/else statements, loops, functions, objects, arrays, and more.

• Everything you need to know in order to gain a deep understanding of how JavaScript works behind the scenes: execution contexts, hoisting, scoping, the 'this' keyword, and more.

• How to make JavaScript code interact with webpages: DOM manipulation. Learn how to select and change webpage elements, create new elements and handle DOM events.

• Complex JavaScript features such as function constructors, prototypal inheritance, first-class functions, closures, the bind and apply methods, and more.

• We are going to code 3 beautiful real-world apps to apply our knowledge and learn new concepts (I provide the starter HTML and CSS code for these projects).

• Learn how to organize and structure your code using modules and functions, how to create data privacy and encapsulation, and why that's so important.

• What's new in the most modern version of JavaScript: new features of ES6 / ES2015.

• Asynchronous JavaScript: the event loop, promises, async/await, AJAX calls and APIs.

• Modern JavaScript in 2018: Learn how to set up a modern development workflow with NPM, Webpack, Babel and ES6 modules.

Watch Online

This is a demo lesson (10:00 remaining)

You can watch up to 10 minutes for free. Subscribe to unlock all 298 lessons in this course and access 10,000+ hours of premium content across all courses.

View Pricing

Watch Online The Complete JavaScript Course 2023: From Zero to Expert!

0:00
/
#1: Course Structure and Projects

All Course Lessons (298)

#Lesson TitleDurationAccess
1
Course Structure and Projects Demo
05:26
2
Watch Before You Start!
06:10
3
Setting Up Our Code Editor
08:24
4
Section Intro
00:54
5
Hello World!
05:58
6
A Brief Introduction to JavaScript
11:19
7
Linking a JavaScript File
15:56
8
Values and Variables
16:06
9
Data Types
19:20
10
let, const and var
09:59
11
Basic Operators
19:32
12
Operator Precedence
11:20
13
Coding Challenge #1
10:29
14
Strings and Template Literals
10:59
15
Taking Decisions: if / else Statements
12:51
16
Coding Challenge #2
06:22
17
Type Conversion and Coercion
16:41
18
Truthy and Falsy Values
10:04
19
Equality Operators: == vs. ===
15:42
20
Boolean Logic
08:31
21
Logical Operators
10:38
22
Coding Challenge #3
15:08
23
The switch Statement
13:11
24
Statements and Expressions
06:09
25
The Conditional (Ternary) Operator
10:03
26
Coding Challenge #4
09:13
27
JavaScript Releases: ES5, ES6+ and ESNext
14:20
28
Section Intro
00:37
29
Activating Strict Mode
10:28
30
Functions
19:09
31
Function Declarations vs. Expressions
10:40
32
Arrow Functions
09:53
33
Functions Calling Other Functions
10:08
34
Reviewing Functions
15:38
35
Coding Challenge #1
18:13
36
Introduction to Arrays
21:35
37
Basic Array Operations (Methods)
12:53
38
Coding Challenge #2
09:37
39
Introduction to Objects
06:09
40
Dot vs. Bracket Notation
19:22
41
Object Methods
23:06
42
Coding Challenge #3
13:00
43
Iteration: The for Loop
11:12
44
Looping Arrays, Breaking and Continuing
22:03
45
Looping Backwards and Loops in Loops
11:54
46
The while Loop
11:53
47
Coding Challenge #4
15:36
48
Pathways and Section Roadmaps
04:09
49
Section Intro
00:40
50
Setting up Prettier and VS Code
16:23
51
Installing Node.js and Setting Up a Dev Environment
11:33
52
Learning How to Code
17:43
53
How to Think Like a Developer: Become a Problem Solver!
10:54
54
Using Google, StackOverflow and MDN
26:38
55
Debugging (Fixing Errors)
05:10
56
Debugging with the Console and Breakpoints
19:26
57
Coding Challenge #1
15:25
58
Section Intro
00:41
59
Basic HTML Structure and Elements
09:33
60
Attributes, Classes and IDs
13:10
61
Basic Styling with CSS
12:01
62
Introduction to the CSS Box Model
20:58
63
Section Intro
00:50
64
PROJECT #1: Guess My Number!
08:48
65
What's the DOM and DOM Manipulation
06:49
66
Selecting and Manipulating Elements
08:23
67
Handling Click Events
12:51
68
Implementing the Game Logic
19:34
69
Manipulating CSS Styles
08:19
70
Coding Challenge #1
11:41
71
Implementing Highscores
07:48
72
Refactoring Our Code: The DRY Principle
15:06
73
PROJECT #2: Modal Window
13:22
74
Working With Classes
16:56
75
Handling an "Esc" Keypress Event
14:12
76
PROJECT #3: Pig Game
17:09
77
Rolling the Dice
15:59
78
Switching the Active Player
15:17
79
Holding Current Score
24:56
80
Resetting the Game
15:39
81
Section Intro
01:32
82
An High-Level Overview of JavaScript
12:12
83
The JavaScript Engine and Runtime
13:48
84
Execution Contexts and The Call Stack
17:46
85
Scope and The Scope Chain
25:38
86
Scoping in Practice
21:14
87
Variable Environment: Hoisting and The TDZ
11:01
88
Hoisting and TDZ in Practice
14:43
89
The this Keyword
06:32
90
The this Keyword in Practice
13:12
91
Regular Functions vs. Arrow Functions
18:05
92
Primitives vs. Objects (Primitive vs. Reference Types)
16:07
93
Primitives vs. Objects in Practice
14:58
94
Section Intro
00:55
95
Destructuring Arrays
19:34
96
Destructuring Objects
19:47
97
The Spread Operator (...)
21:27
98
Rest Pattern and Parameters
19:02
99
Short Circuiting (&& and ||)
15:56
100
The Nullish Coalescing Operator (??)
03:33
101
Logical Assignment Operators
11:41
102
Coding Challenge #1
14:58
103
Looping Arrays: The for-of Loop
07:21
104
Enhanced Object Literals
07:03
105
Optional Chaining (?.)
16:11
106
Looping Objects: Object Keys, Values, and Entries
10:10
107
Coding Challenge #2
14:31
108
Sets
13:19
109
Maps: Fundamentals
14:04
110
Maps: Iteration
12:42
111
Summary: Which Data Structure to Use?
09:41
112
Coding Challenge #3
09:38
113
Working With Strings - Part 1
16:54
114
Working With Strings - Part 2
21:46
115
Working With Strings - Part 3
21:42
116
Coding Challenge #4
15:16
117
String Methods Practice
16:37
118
Section Intro
00:49
119
Default Parameters
09:18
120
How Passing Arguments Works: Value vs. Reference
13:37
121
First-Class and Higher-Order Functions
05:25
122
Functions Accepting Callback Functions
15:21
123
Functions Returning Functions
06:37
124
The call and apply Methods
16:52
125
The bind Method
21:34
126
Coding Challenge #1
18:48
127
Immediately Invoked Function Expressions (IIFE)
07:53
128
Closures
19:49
129
More Closure Examples
15:31
130
Coding Challenge #2
05:26
131
Section Intro
00:54
132
Simple Array Methods
16:38
133
The new at Method
06:05
134
Looping Arrays: forEach
13:47
135
forEach With Maps and Sets
05:33
136
PROJECT: "Bankist" App
09:49
137
Creating DOM Elements
18:45
138
Coding Challenge #1
08:32
139
Data Transformations: map, filter, reduce
04:41
140
The map Method
15:41
141
Computing Usernames
12:15
142
The filter Method
06:20
143
The reduce Method
20:58
144
Coding Challenge #2
09:57
145
The Magic of Chaining Methods
19:41
146
Coding Challenge #3
03:58
147
The find Method
06:48
148
Implementing Login
24:19
149
Implementing Transfers
20:55
150
The findIndex Method
12:36
151
some and every
15:12
152
flat and flatMap
09:33
153
Sorting Arrays
21:56
154
More Ways of Creating and Filling Arrays
20:34
155
Summary: Which Array Method to Use?
06:25
156
Array Methods Practice
32:22
157
Coding Challenge #4
23:49
158
Section Intro
00:51
159
Converting and Checking Numbers
16:47
160
Math and Rounding
18:15
161
The Remainder Operator
10:57
162
Numeric Separators
06:58
163
Working with BigInt
11:19
164
Creating Dates
12:56
165
Adding Dates to "Bankist" App
22:22
166
Operations With Dates
15:28
167
Internationalizing Dates (Intl)
17:19
168
Internationalizing Numbers (Intl)
19:07
169
Timers: setTimeout and setInterval
13:54
170
Implementing a Countdown Timer
28:32
171
Section Intro
01:05
172
PROJECT: "Bankist" Website
08:50
173
How the DOM Really Works
10:37
174
Selecting, Creating, and Deleting Elements
20:29
175
Styles, Attributes and Classes
21:55
176
Implementing Smooth Scrolling
15:57
177
Types of Events and Event Handlers
10:34
178
Event Propagation: Bubbling and Capturing
05:04
179
Event Propagation in Practice
17:47
180
Event Delegation: Implementing Page Navigation
18:50
181
DOM Traversing
14:36
182
Building a Tabbed Component
24:09
183
Passing Arguments to Event Handlers
18:44
184
Implementing a Sticky Navigation: The Scroll Event
07:56
185
A Better Way: The Intersection Observer API
24:02
186
Revealing Elements on Scroll
12:40
187
Lazy Loading Images
18:31
188
Building a Slider Component: Part 1
23:17
189
Building a Slider Component: Part 2
19:36
190
Lifecycle DOM Events
09:27
191
Efficient Script Loading: defer and async
13:31
192
Section Intro
01:08
193
What is Object-Oriented Programming?
20:56
194
OOP in JavaScript
10:09
195
Constructor Functions and the new Operator
14:20
196
Prototypes
14:37
197
Prototypal Inheritance and The Prototype Chain
10:59
198
Prototypal Inheritance on Built-In Objects
14:48
199
Coding Challenge #1
07:28
200
ES6 Classes
12:58
201
Setters and Getters
13:16
202
Static Methods
06:25
203
Object.create
10:57
204
Coding Challenge #2
06:01
205
Inheritance Between "Classes": Constructor Functions
21:04
206
Coding Challenge #3
10:38
207
Inheritance Between "Classes": ES6 Classes
10:47
208
Inheritance Between "Classes": Object.create
08:54
209
Another Class Example
10:45
210
Encapsulation: Protected Properties and Methods
06:48
211
Encapsulation: Private Class Fields and Methods
16:12
212
Chaining Methods
04:44
213
ES6 Classes Summary
07:13
214
Coding Challenge #4
08:55
215
Section Intro
00:59
216
Project Overview
05:03
217
How to Plan a Web Project
17:42
218
Using the Geolocation API
08:17
219
Displaying a Map Using Leaflet Library
13:49
220
Displaying a Map Marker
19:55
221
Rendering Workout Input Form
16:43
222
Project Architecture
09:29
223
Refactoring for Project Architecture
24:06
224
Managing Workout Data: Creating Classes
16:19
225
Creating a New Workout
34:07
226
Rendering Workouts
24:20
227
Move to Marker On Click
16:33
228
Working with localStorage
25:32
229
Final Considerations
05:42
230
Section Intro
00:56
231
Asynchronous JavaScript, AJAX and APIs
17:58
232
Our First AJAX Call: XMLHttpRequest
19:11
233
[OPTIONAL] How the Web Works: Requests and Responses
13:39
234
Welcome to Callback Hell
13:53
235
Promises and the Fetch API
09:26
236
Consuming Promises
09:25
237
Chaining Promises
09:14
238
Handling Rejected Promises
16:14
239
Throwing Errors Manually
15:25
240
Coding Challenge #1
16:33
241
Asynchronous Behind the Scenes: The Event Loop
17:54
242
The Event Loop in Practice
09:16
243
Building a Simple Promise
20:18
244
Promisifying the Geolocation API
13:27
245
Coding Challenge #2
15:54
246
Consuming Promises with Async/Await
15:07
247
Error Handling With try...catch
10:23
248
Returning Values from Async Functions
14:40
249
Running Promises in Parallel
10:57
250
Other Promise Combinators: race, allSettled and any
13:20
251
Coding Challenge #3
17:31
252
Section Intro
00:48
253
An Overview of Modern JavaScript Development
06:40
254
An Overview of Modules in JavaScript
15:02
255
Exporting and Importing in ES6 Modules
22:39
256
Top-Level await (ES2022)
14:45
257
The Module Pattern
10:21
258
CommonJS Modules
04:25
259
A Brief Introduction to the Command Line
12:28
260
Introduction to NPM
18:41
261
Bundling With Parcel and NPM Scripts
21:40
262
Configuring Babel and Polyfilling
18:04
263
Review: Writing Clean and Modern JavaScript
10:27
264
Let's Fix Some Bad Code: Part 1
23:21
265
Declarative and Functional JavaScript Principles
12:26
266
Let's Fix Some Bad Code: Part 2
38:10
267
Section Intro
00:57
268
Project Overview and Planning (I)
14:22
269
Loading a Recipe from API
24:12
270
Rendering the Recipe
22:24
271
Listening For load and hashchange Events
11:03
272
The MVC Architecture
16:33
273
Refactoring for MVC
38:54
274
Helpers and Configuration Files
21:24
275
Event Handlers in MVC: Publisher-Subscriber Pattern
15:09
276
Implementing Error and Success Messages
11:35
277
Implementing Search Results - Part 1
25:47
278
Implementing Search Results - Part 2
28:16
279
Implementing Pagination - Part 1
12:19
280
Implementing Pagination - Part 2
37:06
281
Project Planning II
03:14
282
Updating Recipe Servings
26:41
283
Developing a DOM Updating Algorithm
34:23
284
Implementing Bookmarks - Part 1
26:01
285
Implementing Bookmarks - Part 2
18:32
286
Storing Bookmarks With localStorage
18:23
287
Project Planning III
02:10
288
Uploading a New Recipe - Part 1
17:44
289
Uploading a New Recipe - Part 2
40:38
290
Uploading a New Recipe - Part 3
19:59
291
Wrapping Up: Final Considerations
14:46
292
Section Intro
00:45
293
Simple Deployment With Netlify
11:19
294
Setting Up Git and GitHub
07:40
295
Git Fundamentals
19:37
296
Pushing to GitHub
09:32
297
Setting Up Continuous Integration With Netlify
10:07
298
Where to Go from Here
03:01

Unlock unlimited learning

Get instant access to all 297 lessons in this course, plus thousands of other premium courses. One subscription, unlimited knowledge.

Learn more about subscription

Comments

0 comments

Want to join the conversation?

Sign in to comment

Similar courses

DevOps.js Conference 2021

DevOps.js Conference 2021

Sources: devopsjsconf.com
DevOps.js is an event for all the developers and architects involved in building infrastructure and setting up pipelines and deployments for JavaScript applications. Would you l...
7 hours 51 minutes 4 seconds
Modern JavaScript From The Beginning 2.0

Modern JavaScript From The Beginning 2.0

Sources: Brad Traversy
This is a 37+ hour in-depth course that will take you from the absolute beginning of JavaScript, learning about data types, functions and loops to learning DOM
36 hours 42 minutes 18 seconds
Advanced JavaScript Unleashed

Advanced JavaScript Unleashed

Sources: fullstack.io
JavaScript is arguably the most widely used programming language on the planet, and there is a vast amount of content available for learning JavaScript. The problem is that not ...