Autoplay
Autocomplete
Previous Lesson
Complete and Continue
JavaScript - The Tricky Parts
Getting Started
Welcome to the Course! (1:53)
About this Course (5:14)
Course Requirements & Info (1:39)
How To Take This Course (2:05)
Join the Learning Community
The Academind Pro Referral Program
Scopes & Hoisting
Module Introduction (0:30)
Getting Started (2:39)
Scope in Theory (2:31)
Introducing Global and Local (Function) Scope (4:07)
How Scope Works (6:47)
Getting to Know "Block Scope" (7:56)
Scope Overview (1:44)
Special Cases (11:02)
The Global Object (7:11)
Scope Across Files (4:13)
Modules & Scope (7:53)
Variable Shadowing (3:54)
Quiz: Scope
What is "Hoisting"? (4:00)
Hoisting in Action (7:32)
Hoisting Inside Of Functions (3:05)
"let" & "const" and Hoisting (5:57)
Hoisting Precedence (3:12)
Quiz: Hoisting
Module Resources
Direct vs Indirect Function Execution (Callbacks & Events)
Module Introduction (0:34)
Direct vs Indirect Function Execution (2:38)
Direct Execution in Action (3:30)
Indirect Execution in Action (4:53)
Indirect Execution With Anonymous Functions (2:24)
Indirect Execution and Passing Arguments (7:49)
Quiz: Direct vs Indirect Function Execution
Module Resources
Loops
Module Introduction (0:21)
Loops Overview (3:23)
The "for" Loop (6:09)
The "for" Loop with "let" (2:46)
The "for ... in ..." Loop (7:04)
The "for ... of ..." Loop (5:09)
Using forEach() (4:04)
Quiz: Loops
Module Resources
Primitive vs Reference Values
Module Introduction (0:39)
What are "Primitive" and "Reference Values"? (7:03)
Primitive Values in Action (6:27)
Reference Values in Action (3:00)
Behind the Scenes (2:32)
Immutability vs Mutability (2:35)
Primitive Wrapper Objects (4:37)
"const" & Mutation (5:32)
Reference Value Equality (6:06)
Copying Reference Values (13:01)
Quiz: Primitive vs Reference Values
Module Resources
Types & Type Coercion
Module Introduction (0:45)
What's Special About Types in JavaScript? (3:17)
What is "Coercion"? (5:48)
How Operators Influence Types & Coercion (6:14)
Coercion Rules (9:38)
Arithmetic Operators & Basic Comparisons (7:29)
Comparison Operators for Booleans & Coercion (5:59)
Truthy and Falsy Values (4:58)
Boolean Return Values (4:45)
Explicit Boolean Coercion with the Double Bang Operator (3:46)
Semi-explicit Value Coercion (2:57)
The Special Case of "null" (7:18)
More on null, undefined and NaN (4:10)
Objects & Arrays - Coercion Theory (3:41)
Objects & Arrays - Coercion in Action (5:18)
Objects & Comparisons (6:12)
Explicit Object Coercion (4:08)
Implicit Number Coercion for Objects (2:33)
Wrap Up (1:47)
Quiz & Time to Practice (16:29)
Module Resources
Recursion
Module Introduction (0:47)
What is "Recursion"? (8:36)
A Look Under The Hood (11:45)
Analyzing Recursion with the Browser DevTools (7:28)
Where Recursion Shines (20:52)
Quiz: Recursion
Module Resources
Closures
Module Introduction (0:47)
Closures in Theory (4:15)
Closures in Practice (2:27)
Multiple Environments & Closures (3:22)
How Closures Actually Work (5:39)
A Special Case (9:37)
Quiz: Closures
Module Resources
Asynchronous Code
Module Introduction (0:38)
What is "Async Code"? (5:24)
JavaScript is Single-Threaded! (4:17)
Callbacks (8:05)
Another Callback Example (2:50)
Promises (5:35)
Promises in Action (11:14)
Behind the Scenes of Promises (8:04)
Working with "then()" (5:06)
Promisifying APIs (3:24)
Handling Errors (10:16)
Using "catch()" (2:59)
Rejecting Promises - Behind the Scenes (3:19)
Using async/ await (8:20)
Quiz: Async Code
Module Resources
The "this" Keyword
Module Introduction (0:43)
What is "this" about? (6:14)
"this" in Action (3:27)
How "this" works (4:16)
Special & Tricky Cases (10:02)
"Fixing" "this": Helper Variables & bind() (5:48)
Working with Arrow Functions (4:22)
Quiz: "this"
Module Resources
Prototypes & Inheritance
Module Introduction (0:41)
JavaScript Objects - Refresher (incl. Constructor Functions) (11:19)
What are "Prototypes" in JavaScript? (9:43)
Understanding Prototypes (5:49)
The Prototype Chain (3:15)
Setting & Changing Prototypes (3:46)
Pre-defining the Prototype on Constructor Functions (6:02)
Changing Prototypes (Patching) (6:37)
The Default Prototype and "Monkey Patching" (4:18)
Prototypes & "this" (2:51)
Protoypes, Classes & Methods (9:32)
Prototypes and the "constructor" Property (Method) (2:24)
Quiz: Prototypes
Module Resources
Getting to Know "Block Scope"
Download
Complete and Continue