Manipulating web pages (= the DOM) with JavaScript Event handling, asynchronous coding and Http requests Meta-programming, File size: 17.25 GB
JavaScript – The Complete Guide 2020
What you’ll learn
JavaScript from scratch – 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!
Course content
Expand all 614 lectures52:36:34
–Introduction
59:28
Introduction
Preview
01:50
What is JavaScript?
Preview
03:44
JavaScript in Action!
Preview
08:57
Join our Online Learning Community
00:22
How JavaScript Is Executed
Preview
03:14
Dynamic vs Weakly Typed Languages
Preview
03:24
JavaScript Runs In A Host Environment
Preview
04:40
Course Outline – What Is In The Course?
Preview
06:00
How To Get The Most Out Of This Course
Preview
02:36
Using Course Resources
Preview
01:01
JavaScript vs Java
Preview
04:02
A Brief History Of JavaScript
Preview
06:03
Setting Up a Development Environment
Preview
11:12
Course FAQs
Preview
02:23
–Basics: Variables, Data Types, Operators & Functions
03:16:00
Module Introduction
01:17
Setting Up the Project
04:25
More on Version Control & Git
00:39
Adding JavaScript to the Website
06:42
Introducing Variables & Constants
05:17
Declaring & Defining Variables
07:10
Working with Variables & Operators
06:17
Variables & Operators
6 questions
Understanding the Starting Code
01:21
Data Types: Numbers & Strings (Text)
06:01
Using Constants
05:11
More on Strings
15:51
Data Types & Constants
5 questions
Time to Practice: Variables, Constants, Operators & Core Data Types
1 question
Introducing Functions
05:50
Adding A Custom Function
11:22
Code Styles, Conventions & Syntax
02:05
Returning Values
04:31
The (Un)Importance of Code Order
04:34
An Introduction to Global & Local Scope
05:31
“Shadowed Variables”
00:50
More about the “return” Statement
02:24
Executing Functions “Indirectly”
11:10
“Indirect” vs “Direct” Function Execution – Summary
01:08
Functions & Scope
6 questions
Time to Practice: Functions
1 question
Converting Data Types
06:14
Mixing Numbers & Strings
00:32
Splitting Code into Functions
05:49
Connecting all Buttons to Functions
07:43
Working with Code Comments
04:09
More Operators!
06:39
More Core Data Types!
04:31
Using Arrays
08:53
Creating Objects
06:02
Objects – Common Syntax Gotchas
00:37
Accessing Object Data
02:51
Arrays & Objects
5 questions
Adding a Re-Usable Function That Uses Objects
05:24
undefined, null & NaN
06:20
The “typeof” Operator
03:12
“undefined”, “null” & “NaN”
4 questions
Importing Scripts Correctly with “defer” & “async”
14:37
Importing JavaScript – Summary
00:06
Wrap Up
02:13
Useful Resources & Links
00:28
–Efficient Development & Debugging
58:39
Module Introduction
01:28
Efficient Development & Debugging – An Overview
03:18
Configuring the IDE Look & Feel
02:25
Using Shortcuts
04:12
Working with Auto-Completion & IDE Hints
04:34
Installing IDE Extensions
02:04
Tweaking Editor Settings
02:15
Utilizing Different IDE Views
01:41
Finding Help & Working with MDN
05:53
The ECMAScript Standard
00:16
How to “google” Correctly
01:44
Debugging JavaScript – An Overview
03:17
An Error Message! No Reason To Panic!
04:46
Using console.log() to look “into the Code”
03:49
Next-Level Debugging with the Chrome Devtools & Breakpoints
08:20
Testing Code Changes Directly in the Devtools
02:05
Debugging Code directly Inside VS Code
04:55
Wrap Up
01:22
Useful Resources & Links
00:14
–Working with Control Structures (if Statements, Loops, Error Handling)
03:52:33
Module Introduction
02:26
Introducing “if” Statements & Boolean (Comparison) Operators
09:26
Using Booleans in Conditions & More on Text Comparisons
01:11
Using “if” Statements
07:23
Working with “if”, “else” and “else-if”
05:10
Beware When Comparing Objects & Arrays for Equality!
04:06
The Logical AND and OR Operators
09:10
Understanding Operator Precedence
07:20
if & Boolean Operators – The Basics
7 questions
Beyond true/ false: “Truthy” and “Falsy” Values
07:30
Coercion vs Conversion
01:13
Falsy and Truthy Values
4 questions
Setting Up a Bigger Example Project (The “Monster Killer”)
02:59
Adding an “Attack” Function
07:57
Using “if” Statements for Checking the Win-Condition
09:17
Adding More “if” Statements & A “Strong Attack” Functionality
07:41
Time for a “Heal Player” Functionality!
10:15
Controlling the Conditional Bonus Life (Without Boolean Operators!)
05:59
Adding a “Reset Game” Functionality
06:00
Validating User Input
06:17
Utilizing Global Constants as Identifiers in Conditional Code
03:20
Adding a Conditional Battle Log
16:37
Introducing the Ternary Operator
07:31
A Bit of Theory: Statements vs Expressions
Get immediately download JavaScript – The Complete Guide 2020
01:40
Logical Operator “Tricks” & Shorthands
12:58
Logical Operators – A Quick Summary
01:08
Logical Operators & How They Work
8 questions
Working with the “switch-case” Statement
07:10
Introducing Loops
06:40
The “for” Loop
07:38
The “for-of” Loop
05:16
The “for-in” Loop
06:49
The “while” & “do-while” Loops
08:00
Loops – Basics
7 questions
Time to Practice: Control Structures
1 question
Controlling Loops with “break”
08:11
Controlling Iterations with “continue”
02:21
More Control with Labeled Statements
06:26
break & continue
6 questions
Error Handling with “try-catch” – An Introduction
02:25
Throwing Custom Errors
05:16
Working with “try-catch” to Catch & Handle Errors
08:14
Error Handling
3 questions
Wrap Up
03:21
Useful Resources & Links
00:11
–Behind the Scenes & The (Weird) Past (ES3, ES5) & Present (ES6+) of JavaScript
01:33:51
Module Introduction
01:43
ES5 vs ES6+ (“Next Gen JS”) – Evolution of JavaScript
08:14
var vs let & const – Introducing “Block Scope”
14:32
Understanding “Hoisting”
04:07
Strict Mode & Writing Good Code
05:46
“JavaScript Specialties”
3 questions
How Code is Parsed & Compiled
08:16
Inside the JavaScript Engine – How the Code Executes
15:59
[DEEP DIVE] JavaScript Language vs Browser APIs
01:43
Primitive vs Reference Values
19:24
Garbage Collection & Memory Management
12:00
Wrap Up
01:55
Useful Resources & Links
00:12
–More on Functions
01:40:05
Module Introduction
01:31
Recapping Functions Knowledge – What We Know Thus Far
01:52
Parameters vs Arguments
00:27
Functions vs Methods
05:46
Functions are Objects!
02:47
Function Expressions: Storing Functions in Variables
05:12
Function Expressions vs Function Declarations
02:47
Anonymous Functions
05:54
Working on the Project: Adding User Choices to the Game
07:44
Implementing the Core Game Logic
07:20
Introducing Arrow Functions
08:41
Different Arrow Function Syntaxes
01:10
Creating Functions
3 questions
Outputting Messages to the User
03:53
Default Arguments in Functions
10:45
Introducing Rest Parameters (“Rest Operator”)
08:57
Creating Functions Inside of Functions
03:04
Understanding Callback Functions
06:09
Time to Practice: Functions
1 question
Working with “bind()”
08:39
Functions – Advanced
3 questions
Adding bind() to the Calculator Project
03:47
call() and apply()
01:18
Wrap Up
02:10
Useful Resources & Links
00:11
–Working with the DOM (Browser HTML Code) in JavaScript
03:38:41
Module Introduction
01:48
What’s the “DOM”?
06:00
Document and Window Object
06:20
Understanding the DOM and how it’s created
07:07
Nodes & Elements – Querying the DOM Overview
05:55
Selecting Elements in the DOM
09:54
Summary: Node Query Methods
01:04
Exploring and Changing DOM Properties
07:37
Attributes vs Properties
08:58
Selecting Multiple Elements & Summary
05:13
DOM Basics
5 questions
Time to Practice: DOM Querying
1 question
Traversing the DOM – Overview
06:22
Traversing Child Nodes
09:15
Using parentNode & parentElement
05:01
Selecting Sibling Elements
04:05
DOM Traversal vs Query Methods
04:35
Styling DOM Elements
12:18
Creating Elements with JS – Overview
02:42
Adding Elements via HTML in Code
07:42
Adding Elements via createElement()
05:42
Inserting DOM Elements
08:15
Cloning DOM Nodes
01:45
Live Node Lists vs Static Node Lists
04:55
Removing Elements
01:56
Insertion & Removal Method Summary
02:38
Summary: Insert, Replace, Remove
02:03
Setting Up the Practice Project
02:16
Selecting the Modal and “Add” Button
08:58
Opening a Modal by Changing CSS Classes
05:01
Controlling the Backdrop
08:04
Fetching and Validating User Input
08:06
Creating a Movie in JavaScript & Clearing the Input
04:00
Rendering Movie Items on the Screen
08:24
Deleting Movie Elements
09:12
Showing & Hiding the “Are you sure?” Dialog
07:08
Starting with the Confirmation Logic
04:29
Finishing the App
11:45
Wrap Up
01:55
Useful Resources & Links
00:13
–More on Arrays & Iterables
02:04:39
Module Introduction
01:08
What are “Iterables” and “Array-like Objects”?
02:11
Creating Arrays
08:55
Which Data Can You Store In Arrays?
03:47
push(), pop(), unshift(), shift() – Adding & Removing Elements
06:59
The splice() Method
05:37
Selecting Ranges & Creating Copies with slice()
06:06
Adding Arrays to Arrays with concat()
02:23
Retrieving Indexes with indexOf() /& lastIndexOf()
03:47
Finding Stuff: find() and findIndex()
05:20
Is it Included?
01:20
Alternative to for Loops: The forEach() Method
04:24
Transforming Data with map()
02:38
sort()ing and reverse()ing
04:15
Filtering Arrays with filter()
02:35
Where Arrow Functions Shine!
01:31
The Important reduce() Method
07:33
Chaining Methods in JavaScript
00:47
Arrays & Strings – split() and join()
04:21
The Spread Operator (…)
10:31
Understanding Array Destructuring
04:24
Maps & Sets – Overview
04:16
Working with Sets
07:21
Working with Maps
09:30
Maps vs Objects
03:41
Understanding WeakSet
04:50
Understanding WeakMap
02:51
Time to Practice: Arrays & Iterables
Get immediately download JavaScript – The Complete Guide 2020
1 question
Wrap Up
01:25
Useful Resources & Links
00:13
–More on Objects
01:58:31
Module Introduction
01:38
What’s an Object?
05:54
Objects & Primitive Values
00:40
Objects – Recap
02:42
Adding, Modifying & Deleting Properties
06:46
Special Key Names & Square Bracket Property Access
08:36
Property Types & Property Order
03:55
Dynamic Property Access & Setting Properties Dynamically
04:11
Object Properties
4 questions
Demo App & Shorthand Property Syntax
09:22
Rendering Elements based on Objects
05:36
for-in Loops & Outputting Dynamic Properties
05:24
Adding the Filter Functionality
05:38
Understanding “Chaining” (Property & Method Chaining)
01:51
The Object Spread Operator (…)
05:54
Understanding Object.assign()
02:08
Object Destructuring
06:13
Checking for Property Existance
02:42
Introducing “this”
05:52
The Method Shorthand Syntax
01:07
The “this” Keyword And Its Strange Behavior
05:41
call() and apply()
03:22
What the Browser (Sometimes) Does to “this”
02:33
“this” and Arrow Functions
10:36
“this” – Summary
01:21
“this”
6 questions
Getters & Setters
07:05
Wrap Up
01:33
Useful Resources & Links
00:10
–Classes & Object-oriented Programming (OOP)
02:15:08
Module Introduction
01:55
What is “Object-oriented Programming” (OOP)?
03:17
Getting Started with OOP Code
12:10
Defining & Using a First Class
07:17
Working with Constructor Methods
04:51
Fields vs Properties
02:19
Using & “Connecting” Multiple Classes
09:06
Binding Class Methods & Working with “this”
04:57
Adding a Cart and Shop Class
04:37
Communicating Can Be Challenging!
03:54
Static Methods & Properties
07:51
First Summary & Classes vs Object Literals
04:06
Getters & Setters
05:43
Introducing Inheritance
02:34
Implementing Inheritance
11:50
Using Inheritance Everywhere
06:51
Overriding Methods and the super() Constructor
06:00
super() Constructor Execution, Order & “this”
06:46
Different Ways of Adding Methods
05:51
Private Properties
07:24
“Pseudo-Private” Properties
00:34
Time to Practice: Classes & OOP
1 question
The “instanceof” Operator
04:30
Built-in Classes
01:09
Understanding Object Descriptors
07:35
Classes
5 questions
Wrap Up
01:51
Useful Resources & Links
00:10
26 more sections
Requirements
NO prior JavaScript knowledge is required
Basic web development knowledge is recommended
Basic understanding of HTML and CSS helps but is NOT required
Description
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 because it’s 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 1,000,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
Who this course is for:
Beginner web development students who have no or only little JavaScript experience
Also developers who know the basics about JavaScript and want to deepen their knowledge
Advanced JavaScript developers who want to learn more about the nitty-gritty details and dive into advanced concepts
Everyone interested in learning JavaScript and all about how it works