Course Overview
Join the most comprehensive and in-depth JavaScript course on Udemy and learn JavaScript from the ground up, in great detail with this bestselling course!
JavaScript is THE most important programming language you need to learn as a web developer - and with this course, you make sure that you will not miss a single thing you have to know as a JavaScript developer!
This is the most comprehensive and modern course you can find on JavaScript - it's based on all my JavaScript knowledge AND teaching experience. It's both a complete guide, starting with the core basics of the language, as well as an extensive reference of the JavaScript language and environment, ensuring that both newcomers as well as experienced JavaScript developers get a lot out of this course!
It's a huge course packed with important knowledge and helpful content:
From the core basics, over advanced concepts and JavaScript specialties, all the way up to expert topics like performance optimization and testing - this course has it all. My goal was to create your go-to resource for the JavaScript language, which you can not just use for learning it but also as a resource you can come back to and look up important topics.
The course is based on my experience as a long-term JavaScript developer as well as a teacher with more than 2,500,000 students on Udemy as well as on my YouTube channel Academind. It's packed with examples, demos, projects, assignments, quizzes and of course videos - all with the goal of giving you the best possible way of learning JavaScript.
What's in the course?
This course is obviously packed with content - I therefore strongly recommend that you check out the full course curriculum to get a clear idea of all the topics covered in the course. In general, here's what you'll find in the course:
Modern JavaScript from the start: The JavaScript syntax changed over time - in this course, you'll learn the latest syntax from the start (you'll also learn about the old one though, so that you can work in ANY JS project)
ALL the Basics: Variables, constants, functions, how scripts are loaded etc
Arrays & Objects: We'll explore these very important data structures in great detail
Control Structures: Understand how to run code conditionally and in loops
A look behind the Scenes: How JavaScript engines work behind the scenes and what that means for us
Deep dives into Core Concepts: ALL the special things about JavaScript function, different syntaxes
Working with the DOM: How to manipulate web pages dynamically via JavaScript (including deep dives and different use-cases)
Events in JavaScript: Learn how to listen to a broad variety of events (e.g. drag & drop) and execute appropriate code
Classes & Object-oriented Programming: Learn how to work with classes, prototypes, the "this" keyword, constructor functions and much more
Asynchronous and Synchronous Programming: We'll explore callbacks, promises, async/ await and other important tools and language features to execute code correctly
Http Requests: Learn how to send Http requests via JavaScript
Tooling, Optimizations & Browser Support: Code splitting, producing small code and ensuring that scripts work in all browsers - this matters and hence is covered in great detail
Libraries & Frameworks: Learn about libraries like Axios or frameworks like React.js - why they matter and how to use them
Node.js: Whilst focusing on the browser-side for the majority of the course (because the syntax is the same), we'll also have a dedicated section on Node.js to learn all about that JS host environment
Security & Performance Optimizations: Of course security matters, so does performance - no surprise that both is covered in the course!
Automated Testing: Testing manually is hard work and can be unreliable - in this course you'll also get an introduction into automated testing
What are the course prerequisites?
NO JavaScript knowledge is required - you'll learn it from scratch!
You also need NO programming experience other than basic web development knowledge (e.g. how the web works)
Basic HTML and CSS knowledge is recommended but not a must-have
FAQ
FAQ area empty
Course curriculum
-
Introduction
110 Xem trước -
What is JavaScript?
226 Xem trước -
JavaScript in Action!
548 Xem trước -
Join our Online Learning Community
Xem trước -
How JavaScript Is Executed
194 Xem trước -
Dynamic vs Weakly Typed Languages
208 -
JavaScript Executes In A Hosted Environment
280 Xem trước -
Course Outline - What's In This Course?
360 -
How To Get The Most Out Of This Course
156 Xem trước -
Using Course Resources
-
JavaScript vs Java
242 -
A Brief History Of JavaScript
363 -
Setting Up a Development Environment
672 -
Course FAQs
-
Module Introduction
77 -
Setting Up the Project
265 -
More on Version Control & Git
-
Adding JavaScript to the Website
402 -
Introducing Variables & Constants
317 -
Declaring & Defining Variables
430 -
Working with Variables & Operators
377 -
Variables & Operators
-
Exercise: Variables & Operators
0 -
Understanding the Starting Code
81 -
Data Types: Numbers & Strings (Text)
361 -
Using Constants
311 -
More on Strings
951 -
Data Types & Constants
-
Time to Practice: Variables, Constants, Operators & Core Data Types
-
Introducing Functions
350 -
Adding A Custom Function
682 -
Code Styles, Conventions & Syntax
-
Returning Values
271 -
Exercise: Functions
0 -
The (Un)Importance of Code Order
274 -
An Introduction to Global & Local Scope
331 -
"Shadowed Variables"
-
More about the "return" Statement
144 -
Executing Functions "Indirectly"
670 -
"Indirect" vs "Direct" Function Execution - Summary
-
Exercise: Executing Functions Directly & Indirectly
0 -
Functions & Scope
-
Time to Practice: Functions
-
Converting Data Types
374 -
Mixing Numbers & Strings
-
Splitting Code into Functions
349 -
Connecting all Buttons to Functions
463 -
Working with Code Comments
249 -
More Operators!
399 -
More Core Data Types!
271 -
Using Arrays
533 -
Exercise: Arrays
0 -
Creating Objects
362 -
Exercise: Objects
0 -
Objects - Common Syntax Gotchas
-
Accessing Object Data
171 -
Arrays & Objects
-
Adding a Re-Usable Function That Uses Objects
324 -
Undefined, null & NaN
380 -
The "typeof" Operator
192 -
"undefined", "null" & "NaN"
-
Importing Scripts Correctly with "defer" & "async"
877 -
Importing JavaScript - Summary
-
Wrap Up
133 -
Useful Resources & Links
-
Module Introduction
88 -
Efficient Development & Debugging - An Overview
198 -
Configuring the IDE Look & Feel
145 -
Using Shortcuts
252 -
Working with Auto-Completion & IDE Hints
274 -
Installing IDE Extensions
124 -
Tweaking Editor Settings
135 -
Utilizing Different IDE Views
101 -
Finding Help & Working with MDN
353 -
The ECMAScript Standard
-
How to "google" Correctly
104 -
Debugging JavaScript - An Overview
197 -
An Error Message! No Reason To Panic!
286 -
Using console.log() to look "into the Code"
229 -
Next-Level Debugging with the Chrome Devtools & Breakpoints
500 -
Testing Code Changes Directly in the Devtools
125 -
Debugging Code directly Inside VS Code
295 -
Wrap Up
82 -
Useful Resources & Links
-
Module Introduction
146 -
Introducing "if" Statements & Boolean (Comparison) Operators
566 -
Using Booleans in Conditions & More on Text Comparisons
-
Using "if" Statements
443 -
Working with "if", "else" and "else-if"
310 -
Exercise: Getting Started with if Statements
0 -
Beware When Comparing Objects & Arrays for Equality!
246 -
The Logical AND and OR Operators
550 -
Understanding Operator Precedence
440 -
If & Boolean Operators - The Basics
-
Beyond true/ false: "Truthy" and "Falsy" Values
450 -
Coercion vs Conversion
-
Falsy and Truthy Values
-
Setting Up a Bigger Example Project (The "Monster Killer")
179 -
Adding an "Attack" Function
477 -
Using "if" Statements for Checking the Win-Condition
557 -
Adding More "if" Statements & A "Strong Attack" Functionality
461 -
Time for a "Heal Player" Functionality!
615 -
Controlling the Conditional Bonus Life (Without Boolean Operators!)
359 -
Adding a "Reset Game" Functionality
360 -
Validating User Input
377 -
Utilizing Global Constants as Identifiers in Conditional Code
200 -
Adding a Conditional Battle Log
997 -
Introducing the Ternary Operator
451 -
A Bit of Theory: Statements vs Expressions
100 -
Logical Operator "Tricks" & Shorthands
778 -
Logical Operators - A Quick Summary
-
Logical Operators & How They Work
-
Working with the "switch-case" Statement
430 -
Introducing Loops
400 -
The "for" Loop
458 -
Exercise: for Loops
0 -
The "for-of" Loop
316 -
The "for-in" Loop
409 -
The "while" & "do-while" Loops
480 -
Loops - Basics
-
Time to Practice: Control Structures
-
Controlling Loops with "break"
491 -
Controlling Iterations with "continue"
141 -
More Control with Labeled Statements
386 -
Break & continue
-
Error Handling with "try-catch" - An Introduction
145 -
Throwing Custom Errors
316 -
Working with "try-catch" to Catch & Handle Errors
494 -
Exercise: Throwing & Handling Errors
0 -
Error Handling
-
Wrap Up
201 -
Useful Resources & Links
-
Module Introduction
103 -
ES5 vs ES6+ ("Next Gen JS") - Evolution of JavaScript
494 -
Var vs let & const - Introducing "Block Scope"
872 -
Understanding "Hoisting"
247 -
Strict Mode & Writing Good Code
346 -
"JavaScript Specialties"
-
How Code is Parsed & Compiled
496 -
Inside the JavaScript Engine - How the Code Executes
959 -
[DEEP DIVE] JavaScript Language vs Browser APIs
-
Primitive vs Reference Values
1164 -
Garbage Collection & Memory Management
720 -
Wrap Up
115 -
Useful Resources & Links
-
Module Introduction
91 -
Recapping Functions Knowledge - What We Know Thus Far
112 -
Parameters vs Arguments
-
Functions vs Methods
346 -
Functions are Objects!
167 -
Function Expressions: Storing Functions in Variables
312 -
Function Expressions vs Function Declarations
167 -
Anonymous Functions
354 -
Working on the Project: Adding User Choices to the Game
464 -
Implementing the Core Game Logic
440 -
Introducing Arrow Functions
521 -
Different Arrow Function Syntaxes
-
Creating Functions
-
Outputting Messages to the User
233 -
Default Arguments in Functions
645 -
Introducing Rest Parameters ("Rest Operator")
537 -
Creating Functions Inside of Functions
184 -
Understanding Callback Functions
369 -
Time to Practice: Functions
-
Working with "bind()"
519 -
Functions - Advanced
-
Adding bind() to the Calculator Project
227 -
Call() and apply()
78 -
Wrap Up
130 -
Useful Resources & Links
-
Module Introduction
108 -
What's the "DOM"?
360 -
Document and Window Object
380 -
Understanding the DOM and how it's created
427 -
Nodes & Elements - Querying the DOM Overview
355 -
Selecting Elements in the DOM
594 -
Exercise: Selecting Elements in the DOM
0 -
Summary: Node Query Methods
-
Exploring and Changing DOM Properties
457 -
Attributes vs Properties
538 -
Selecting Multiple Elements & Summary
313 -
DOM Basics
-
Time to Practice: DOM Querying
-
Traversing the DOM - Overview
382 -
Traversing Child Nodes
555 -
Using parentNode & parentElement
301 -
Selecting Sibling Elements
245 -
DOM Traversal vs Query Methods
275 -
Styling DOM Elements
738 -
Creating Elements with JS - Overview
162 -
Adding Elements via HTML in Code
462 -
Adding Elements via createElement()
342 -
Exercise: Adding Elements
0 -
Inserting DOM Elements
495 -
Cloning DOM Nodes
105 -
Live Node Lists vs Static Node Lists
295 -
Removing Elements
116 -
Insertion & Removal Method Summary
158 -
Summary: Insert, Replace, Remove
-
Setting Up the Practice Project
136 -
Selecting the Modal and "Add" Button
538 -
Opening a Modal by Changing CSS Classes
301 -
Controlling the Backdrop
484 -
Fetching and Validating User Input
486 -
Creating a Movie in JavaScript & Clearing the Input
240 -
Rendering Movie Items on the Screen
504 -
Deleting Movie Elements
552 -
Showing & Hiding the "Are you sure?" Dialog
428 -
Starting with the Confirmation Logic
269 -
Finishing the App
705 -
Wrap Up
115 -
Useful Resources & Links
-
Module Introduction
68 -
What are "Iterables" and "Array-like Objects"?
131 -
Creating Arrays
535 -
Which Data Can You Store In Arrays?
227 -
Push(), pop(), unshift(), shift() - Adding & Removing Elements
419 -
The splice() Method
337 -
Selecting Ranges & Creating Copies with slice()
366 -
Adding Arrays to Arrays with concat()
143 -
Retrieving Indexes with indexOf() /& lastIndexOf()
227 -
Finding Stuff: find() and findIndex()
320 -
Is it Included?
80 -
Alternative to for Loops: The forEach() Method
264 -
Transforming Data with map()
158 -
Exercise: map()
0 -
Sort()ing and reverse()ing
255 -
Filtering Arrays with filter()
155 -
Where Arrow Functions Shine!
91 -
The Important reduce() Method
453 -
Chaining Methods in JavaScript
-
Arrays & Strings - split() and join()
261 -
The Spread Operator (...)
631 -
Understanding Array Destructuring
264 -
Maps & Sets - Overview
256 -
Working with Sets
441 -
Working with Maps
570 -
Maps vs Objects
221 -
Understanding WeakSet
290 -
Understanding WeakMap
171 -
Time to Practice: Arrays & Iterables
-
Wrap Up
85 -
Useful Resources & Links
-
Module Introduction
98 -
What's an Object?
354 -
Objects & Primitive Values
-
Objects - Recap
162 -
Adding, Modifying & Deleting Properties
406 -
Special Key Names & Square Bracket Property Access
516 -
Property Types & Property Order
235 -
Dynamic Property Access & Setting Properties Dynamically
251 -
Object Properties
-
Demo App & Shorthand Property Syntax
562 -
Rendering Elements based on Objects
336 -
For-in Loops & Outputting Dynamic Properties
324 -
Adding the Filter Functionality
338 -
Understanding "Chaining" (Property & Method Chaining)
111 -
The Object Spread Operator (...)
354 -
Understanding Object.assign()
128 -
Object Destructuring
373 -
Checking for Property Existance
162 -
Introducing "this"
352 -
The Method Shorthand Syntax
67 -
The "this" Keyword And Its Strange Behavior
341 -
Call() and apply()
202 -
What the Browser (Sometimes) Does to "this"
153 -
"this" and Arrow Functions
636 -
"this" - Summary
-
"this"
-
Getters & Setters
425 -
Wrap Up
93 -
Useful Resources & Links
-
Module Introduction
115 -
What is "Object-oriented Programming" (OOP)?
197 -
Getting Started with OOP Code
730 -
Defining & Using a First Class
437 -
Working with Constructor Methods
291 -
Fields vs Properties
139 -
Using & "Connecting" Multiple Classes
546 -
Binding Class Methods & Working with "this"
297 -
Adding a Cart and Shop Class
277 -
Communicating Can Be Challenging!
234 -
Static Methods & Properties
471 -
First Summary & Classes vs Object Literals
246 -
Getters & Setters
343 -
Introducing Inheritance
154 -
Implementing Inheritance
710 -
Using Inheritance Everywhere
411 -
Overriding Methods and the super() Constructor
360 -
Super() Constructor Execution, Order & "this"
406 -
Different Ways of Adding Methods
351 -
Private Properties
444 -
"Pseudo-Private" Properties
-
Time to Practice: Classes & OOP
-
The "instanceof" Operator
270 -
Built-in Classes
69 -
Understanding Object Descriptors
455 -
Classes
-
Wrap Up
111 -
Useful Resources & Links
-
Module Introduction
94 -
Introducing Constructor Functions
242 -
Constructor Functions vs Classes & Understanding "new"
257 -
Introducing Prototypes
1006 -
Prototypes - Summary
-
Working with Prototypes
319 -
The Prototype Chain and the Global "Object"
506 -
Constructor Functions & Prototypes
-
Classes & Prototypes
324 -
Methods in Classes & In Constructors
616 -
Built-in Prototypes in JavaScript
132 -
Setting & Getting Prototypes
658 -
Wrap Up
169 -
Useful Resources & Links
-
Module Introduction
151 -
Using "dataset" (data-* Attributes)
411 -
Getting Element Box Dimensions
354 -
Working with Element Sizes & Positions
296 -
The DOM & Prototypes
141 -
Positioning the Tooltip
657 -
Handling Scrolling
336 -
Working with <template> Tags
314 -
Loading Scripts Dynamically
455 -
Setting Timers & Intervals
457 -
The "location" and "history" Objects
260 -
The "navigator" Object
290 -
Working with Dates
197 -
The "Error" Object & Constructor Function
201 -
Wrap Up
43 -
Useful Resources & Links
-
Module Introduction
91 -
Introduction to Events in JavaScript
378 -
Different Ways of Listening to Events
419 -
Removing Event Listeners
314 -
The "event" Object
343 -
Supported Event Types
480 -
Example: Basic Infinite Scrolling
-
Working with "preventDefault()"
315 -
Understanding "Capturing" & "Bubbling" Phases
123 -
Event Propagation & "stopPropagation()"
459 -
Using Event Delegation
513 -
Triggering DOM Elements Programmatically
220 -
Event Handler Functions & "this"
148 -
Events
-
Drag & Drop - Theory
299 -
Configuring Draggable Elements
383 -
Marking the "Drop Area"
532 -
Dropping & Moving Data + Elements
418 -
Firefox Adjustments
-
Wrap Up
75 -
Useful Resources & Links
-
Module Introduction
53 -
How Numbers Work & Behave in JavaScript
466 -
Floating Point (Im)Precision
664 -
The BigInt Type
216 -
The Global "Number" and "Math" Objects
167 -
Example: Generate Random Number Between Min/ Max
333 -
Exploring String Methods
103 -
Tagged Templates
628 -
Introducing Regular Expressions ("RegEx")
270 -
More on Regular Expressions
445 -
Wrap Up
80 -
Useful Resources & Links
-
Module Introduction
72 -
Understanding Synchronous Code Execution ("Sync Code")
171 -
Understanding Asynchronous Code Execution ("Async Code")
344 -
Blocking Code & The "Event Loop"
630 -
Sync + Async Code - The Execution Order
243 -
Multiple Callbacks & setTimeout(0)
200 -
Asynchronous Code
-
Getting Started with Promises
505 -
Chaining Multiple Promises
353 -
Promise Error Handling
466 -
Promise States & "finally"
-
Async/ await
551 -
Async/ await & Error Handling
187 -
Async/ await vs "Raw Promises"
296 -
Promise.all(), Promise.race() etc.
479 -
Promises & async/ await
-
Wrap Up
87 -
Useful Resources & Links
-
Module Introduction
67 -
What & Why
303 -
How The Web Works
-
More Background about Http
324 -
Getting Started with Http
215 -
Sending a GET Request
226 -
JSON Data & Parsing Data
554 -
JSON Data Deep Dive
-
Promisifying Http Requests (with XMLHttpRequest)
229 -
Sending Data with a POST Request
295 -
Triggering Requests via the UI
193 -
The "Fetch" Button Always Appends
-
Sending a DELETE Request
296 -
Handling Errors
303 -
Using the fetch() API
430 -
POSTing Data with the fetch() API
158 -
Adding Request Headers
181 -
Fetch() & Error Handling
431 -
XMLHttpRequest vs fetch()
102 -
Working with FormData
418 -
Wrap Up
77 -
Useful Resources & Links
-
Module Introduction
56 -
Splitting Code in a Sub-optimal Way
432 -
A First Step Towards JavaScript Modules
205 -
We Need a Development Server!
358 -
First import / export Work
221 -
Switching All Files To Use Modules
266 -
More Named Export Syntax Variations
372 -
Working With Default Exports
215 -
Dynamic Imports & Code Splitting
324 -
When Does Module Code Execute?
126 -
Module Scope & globalThis
378 -
Modules
-
Wrap Up
97 -
Useful Resources & Links
-
Module Introduction
203 -
Project Limitations & Why We Need Tools
491 -
Workflow Overview
162 -
Setting Up a npm Project
225 -
Working with npm Packages
219 -
Linting with ESLint
518 -
Configuring ESLint
-
Important: Webpack Version & Configuring npm Scripts
-
Bundling with Webpack
913 -
Bonus: Multiple Entry Points
-
Development Mode & Fixing "Lazy Loading"
240 -
Using webpack-dev-server
194 -
Generating Sourcemaps
185 -
Building For Production
225 -
Final Optimizations
395 -
Using Third Party Packages with npm & Webpack
246 -
Wrap Up
99 -
Useful Resources & Links
-
Module Introduction
89 -
What Is "Browser Support" About?
456 -
Determining Browser Support For A JavaScript Feature
500 -
Determining Required Support
209 -
Solution: Feature Detection + Fallback Code
595 -
Solution: Using Polyfills
198 -
Solution: Transpiling Code
722 -
Improvement: Automatically Detect + Add Polyfills
662 -
What about Support Outside of Browsers?
58 -
Browser Support Outside of JavaScript Files
156 -
Wrap Up
78 -
Useful Resources & Links
-
Module Introduction
53 -
Note: Use the LTS Version of NodeJS
-
Setting Up the Project
185 -
Getting DOM Access
273 -
Getting the User Location
387 -
Adding Feedback (Showing a Modal)
676 -
Hiding the Modal
158 -
Rendering a Map with Google Maps
856 -
Continuing without a Credit Card
-
Finding an Address & Getting the Coordinates
502 -
Converting User Input to Coordinates
215 -
Creating a "Share Place" Link
510 -
Copying the Link to the Clipboard
216 -
Rendering the "Shared Place" Screen
382 -
Useful Resources & Links
-
Module Introduction
111 -
Understanding Symbols
507 -
Well-known Symbols
315 -
Understanding Iterators
332 -
Generators & Iterable Objects
662 -
Generators Summary & Built-in Iterables Examples
202 -
The Reflect API
430 -
The Proxy API and a First "Trap"
544 -
Working with Proxy Traps
177 -
Wrap Up
97 -
Useful Resources & Links
-
Module Introduction
102 -
JavaScript is a Hosted Language
141 -
Installation & Basics
376 -
Understanding Modules & File Access
279 -
Working with Incoming Http Requests
346 -
Sending Responses (HTML Data)
241 -
Parsing Incoming Data
653 -
Introducing & Installing Express.js
168 -
Express.js: The Basics
394 -
Extracting Data
263 -
Rendering Server-side HTML with Templates & EJS
412 -
Enhancing Our Project
224 -
Adding Basic REST Routes
729 -
Understanding CORS (Cross Origin Resource Sharing)
313 -
Sending the Location ID to the Frontend
136 -
Adding the GET Location Route
436 -
Introducing MongoDB (Database)
884 -
NodeJS Error Handling
-
Wrap Up
110 -
Useful Resources & Links
-
Module Introduction
95 -
Security Hole Overview & Exposing Data in your Code
405 -
Cross-Site Scripting Attacks (XSS)
879 -
Third-Party Libraries & XSS
317 -
XSS & Exposing Confidential Details
-
CSRF Attacks (Cross Site Request Forgery)
256 -
CORS (Cross Origin Resource Sharing)
173 -
Wrap Up
90 -
Useful Resources & Links
-
Module Introduction
109 -
What is "Performance Optimization" About?
376 -
Optimization Potentials
408 -
Measuring Performance
222 -
Diving Into The Browser Devtools (for Performance Measuring)
930 -
Further Resources
133 -
Preparing The Testing Setup
243 -
Optimizing Startup Time & Code Usage / Coverage
711 -
Updating The DOM Correctly
593 -
Updating Lists Correctly
491 -
Optimizing The Small Things
238 -
Micro-Optimizations (Think Twice!)
529 -
Finding & Fixing Memory Leaks
583 -
Server-side Performance Optimizations
-
Wrap Up
206 -
Useful Resources & Links
-
Module Introduction
122 -
What are "Data Structures" & "Algorithms"?
262 -
A First Example
622 -
Solving the Same Problem Differently
446 -
Performance & The "Big O" Notation
704 -
More Time Complexities & Comparing Algorithms
216 -
More on Big O
323 -
More Examples
615 -
Diving into Data Structures & Time Complexities
727 -
Where to Learn More & Wrap Up
202 -
Useful Resources & Links
-
Module Introduction
71 -
What is TypeScript and Why would you use it?
298 -
Working with Types
605 -
Core Types & Diving Deeper
1046 -
Object Types, Array Types & Function Types
562 -
Advanced Types (Literal Types, Union Types, Enums)
560 -
Classes & Interfaces
722 -
Generic Types
302 -
Configuring the TypeScript Compiler
311 -
Useful Resources & Links
-
Module Introduction
121 -
Web Components in Action
390 -
What are Web Components?
202 -
Why Web Components?
164 -
Getting Started!
296 -
Web Component Browser Support
164 -
Our Development Setup
233 -
A First Custom Element
497 -
Interacting with the Surrounding DOM
304 -
Understanding the Custom Element Lifecycle
171 -
Using "connectedCallback" for DOM Access
125 -
Listening to Events Inside the Component
552 -
Using Attributes on Custom Elements
285 -
Styling our Elements
248 -
Working with the "Shadow DOM"
300 -
Adding an HTML Template
340 -
Using Slots
110 -
Defining the Template in JavaScript
201 -
Using Style Tags in the Shadow DOM
160 -
Extending Built-in Elements
453 -
Time to Practice - The Basics
-
The Next Steps
49 -
Understanding Shadow DOM Projection
146 -
Styling "slot" Content Outside of the Shadow DOM
224 -
Styling "slot" Content Inside of the Shadow DOM
190 -
Styling the Host Component
282 -
Conditional Host Styling
169 -
Styling with the Host Content in Mind
147 -
Smart Dynamic Styling with CSS Variables
380 -
Cleaning Up the Overall Styling
202 -
Observing Attribute Changes
377 -
Adjusting the Component Behavior Upon Attribute Changes
154 -
Using "disconnectedCallback"
370 -
Adding a render() Method
373 -
Final Adjustment
-
The Next Steps
52 -
Creating the Basic Modal Component
393 -
Adding the Modal Container
149 -
Styling the Modal Elements
335 -
Adding Some General App Logic
229 -
Opening the Modal via CSS
323 -
Public Methods & Properties
397 -
Understanding Named Slots
345 -
Listening to Slot Content Changes
310 -
Closing the Modal
417 -
Dispatching Custom Events
220 -
Configuring Custom Events
292 -
Finishing it up!
291 -
Useful Resources & Links
Requirment
-
NO prior JavaScript knowledge is required
-
Basic web development knowledge is recommended
-
Basic understanding of HTML and CSS helps but is NOT required
Outcomes
-
Learn JavaScript from scratch and in great detail - from beginner to advanced
-
All core features and concepts you need to know in modern JavaScript development
-
Everything you need to become a JavaScript expert and apply for JavaScript jobs
-
Project-driven learning with plenty of examples
-
All about variables, functions, objects and arrays
-
Object-oriented programming
-
Deep dives into prototypes, JavaScript engines & how it works behind the scenes
-
Manipulating web pages (= the DOM) with JavaScript
-
Event handling, asynchronous coding and Http requests
-
Meta-programming, performance optimization, memory leak busting
-
Testing, security and deployment
-
And so much more!
0 Student
4 Courses
0 review