Autoplay
Autocomplete
Previous Lesson
Complete and Continue
JavaScript: The Advanced Concepts
Introduction
Advanced JavaScript Concepts (3:55)
How To Succeed In This Course (5:37)
Exercise: Meet Your Classmates and Instructor
ZTM Plugin + Understanding Your Video Player
Set Your Learning Streak Goal
JavaScript Foundation
Section Overview (2:27)
Javascript Engine (5:28)
Exercise: Javascript Engine (0:56)
Inside The Engine (4:05)
Exercise: JS Engine For All (2:33)
Interpreters and Compilers (6:21)
Babel + TypeScript
Inside the V8 Engine (8:56)
Comparing Other Languages (4:15)
Writing Optimized Code (8:53)
WebAssembly (3:15)
Call Stack and Memory Heap (14:37)
Stack Overflow (3:21)
Garbage Collection (4:30)
Memory Leaks (6:34)
Single Threaded (1:58)
Exercise: Issue With Single Thread (2:40)
Javascript Runtime (14:07)
Node.js (6:27)
IMPORTANT: Replit Code
Exercise: Fix This Code
Section Review (5:02)
Web Developer Monthly
Advanced JavaScript Cheatsheet
Endorsements On LinkedIn
Let's Have Some Fun (+ Free Resources)
Javascript Foundation II
Section Overview (1:06)
Execution Context (8:35)
Lexical Environment (5:39)
Hoisting (10:47)
Exercise: Hoisting (3:58)
Exercise: Hoisting 2 (7:06)
Exercise: Hoisting 3
Function Invocation (6:59)
arguments Keyword (4:22)
Variable Environment (6:41)
Scope Chain (12:20)
[[scope]] (2:03)
Exercise: JS is Weird (4:58)
Function Scope vs Block Scope (3:35)
Exercise: Block Scope (3:45)
Global Variables (4:10)
IIFE (13:38)
this Keyword (16:59)
Exercise: Dynamic Scope vs Lexical Scope (12:08)
call(), apply(), bind() (11:17)
Exercise: call(), apply()
bind() and currying (3:42)
Exercise: this Keyword (3:09)
Exercise: this Keyword 2
Context vs Scope (1:08)
Section Review (2:47)
Unlimited Updates
Types in JavaScript
Section Overview (1:22)
Javascript Types (13:40)
Array.isArray() (2:17)
Pass By Value vs Pass By Reference (17:06)
Exercise: Compare Objects
Exercise: Pass By Reference
structuredClone
Type Coercion (9:02)
Exercise: Type Coercion
Quick Note: Upcoming Videos
JTS: Dynamic vs Static Typing (11:50)
JTS: Weakly vs Strongly Typed (3:18)
JTS: Static Typing In JavaScript (9:45)
Course Check-In
The 2 Pillars: Closures and Prototypal Inheritance
Section Overview (1:54)
Functions Are Objects (9:18)
First Class Citizens (4:04)
Extra Bits: Functions (3:25)
Higher Order Functions (17:14)
Exercise: Higher Order Functions (3:45)
Closures (15:11)
Exercise: Closures (3:18)
Closures and Memory (7:52)
Closures and Encapsulation (7:41)
Exercise: Closures 2 (1:31)
Solution: Closures 2 (2:34)
Exercise: Closures 3 (1:28)
Solution: Closures 3 (3:47)
Closures Review (1:34)
Prototypal Inheritance (6:47)
Prototypal Inheritance 2 (9:07)
Prototypal Inheritance 3 (7:46)
Prototypal Inheritance 4 (10:35)
Prototypal Inheritance 5 (2:43)
Prototypal Inheritance 6 (9:16)
Exercise: Prototypal Inheritance (2:55)
Solution: Prototypal Inheritance (8:20)
Exercise: Prototypal Inheritance with this
Exercise: Imposter Syndrome (2:56)
Section Review (3:57)
Implement a New Life System
Object Oriented Programming
Section Overview (6:24)
OOP and FP (3:50)
OOP Introduction (3:21)
OOP1: Factory Functions (8:20)
OOP2: Object.create() (7:38)
OOP3: Constructor Functions (13:00)
More Constructor Functions (8:38)
Funny Thing About JS... (2:52)
OOP4: ES6 Classes (8:44)
Object.create() vs Class (1:48)
this - 4 Ways (4:44)
Inheritance (14:41)
Inheritance 2 (5:25)
ES2022: Private Class Fields + Methods
Public vs Private (4:21)
OOP in React.js (3:05)
4 pillars of OOP (8:17)
Exercise: OOP and Polymorphism
Reviewing OOP (2:06)
Functional Programming
Section Overview (2:29)
Functional Programming Introduction (3:31)
Exercise: Amazon (3:37)
Pure Functions (4:35)
Pure Functions 2 (7:47)
Can Everything Be Pure? (4:33)
Idempotent (4:08)
Imperative vs Declarative (6:28)
Immutability (5:28)
Higher Order Functions and Closures (7:49)
Currying (4:24)
Partial Application (4:24)
Quick Note: Upcoming Videos
MCI: Memoization 1 (7:47)
MCI: Memoization 2 (3:56)
Compose and Pipe (12:33)
Arity (1:46)
Is FP The Answer To Everything? (2:54)
Solution: Amazon (21:48)
Reviewing FP (5:14)
OOP vs FP
Composition vs Inheritance (16:20)
OOP vs FP (4:29)
OOP vs FP 2 (5:19)
Asynchronous JavaScript
Section Overview (4:51)
Quick Note: Upcoming Videos
How JavaScript Works (24:12)
Promises (22:26)
ES8 - Async Await (15:22)
ES9 (ES2018) (5:21)
ES9 (ES2018) - Async (11:11)
Job Queue (6:55)
Parallel, Sequence, Race (10:00)
ES2020: allSettled() (4:22)
ES2021: any()
Threads, Concurrency and Parallelism (11:27)
Modules in JavaScript
Section Overview (2:44)
What Is A Module? (11:05)
Module Pattern (13:05)
Module Pattern Pros and Cons (4:53)
CommonJS, AMD, UMD (10:05)
ES6 Modules (8:52)
Optional: ES2022 Top Level Await (3:46)
Optional: ES2022 Exercise
Optional: ES2022 Await Import (5:05)
Section Review (2:14)
Error Handling
Section Overview (1:07)
Errors In JavaScript (8:52)
Try Catch (9:53)
Async Error Handling (12:56)
Async Error Handling 2 (3:30)
Exercise: Error Handling
Extending Errors (5:08)
Section Review (1:18)
Where To Go From Here?
Thank You (0:39)
Review This Course!
Learning Guideline
Become An Alumni
ZTM Events Every Month
LinkedIn Endorsements
Bonus Materials
Bonus: Data Structures In JavaScript
Quick Note: Upcoming Videos
Section Overview (1:58)
What Is A Data Structure? (5:53)
How Computers Store Data (12:33)
Data Structures In Different Languages (3:27)
Operations On Data Structures (3:05)
Array Introduction (13:51)
Static vs Dynamic Arrays (6:40)
Implementing An Array (17:19)
Strings and Arrays (1:04)
Exercise: Reverse A String (1:35)
Solution Reverse A String (10:31)
Exercise: Merge Sorted Arrays (0:44)
Solution: Merge Sorted Arrays (14:12)
Arrays Review (3:28)
Hash Tables Introduction (4:10)
Hash Function (5:56)
Hash Collisions (9:43)
Hash Tables in Different Languages (3:30)
Exercise: Implement A Hash Table (3:51)
Solution: Implement A Hash Table (17:24)
keys() (6:11)
Hash Tables vs Arrays (2:01)
Exercise: First Recurring Character (1:18)
Solution: First Recurring Character (16:11)
Hash Tables Review (6:09)
Appendix I: Javascript Basics
Quick Note: Upcoming Videos
What is JavaScript? (5:33)
Your First JavaScript (11:41)
Variables (15:09)
Control Flow (16:36)
JavaScript On Our Webpage (9:05)
Functions (23:53)
Data Structures: Arrays (13:06)
Data Structures: Objects (15:25)
Exercise: Build Facebook (11:16)
JavaScript Terminology (3:43)
Loops (22:22)
Exercise: Build Facebook 2 (8:02)
JavaScript Keywords (3:02)
Appendix II: Intermediate Javascript
Quick Note: Upcoming Videos
Scope (10:25)
Advanced Control Flow (11:41)
ES5 and ES6 (26:41)
Advanced Functions (20:04)
Advanced Arrays (16:40)
Advanced Objects (24:51)
ES7 (3:06)
ES8 (9:19)
Note: ES9 + ES8 Async Await
ES10 (ES2019) (16:49)
Advanced Loops (12:04)
ES2020 Part 1 (10:07)
ES2020 Part 2 (3:29)
ES2020 Part 3 (4:10)
ES2020: globalThis (3:14)
ES2021 (3:08)
ES2022 (3:25)
ES2023 (13:31)
Exercise: ES2023
ES2024 (5:49)
Debugging (8:23)
Modules (13:19)
Bonus: Extra Bits
Notes To Review The Course
AMA - 100,000 Students!! (38:30)
Static vs Dynamic Arrays
This lecture is available exclusively for ZTM Academy members.
If you're already a member,
you'll need to login
.
Join ZTM To Unlock All Lectures