The Complete JavaScript Course 2023: From Zero to Expert!
About Course
Master JavaScript from zero to expert with this comprehensive online course, completely free! This course is designed to provide you with a deep understanding of JavaScript, a language that powers the modern web and offers a wide range of career opportunities.
This course covers everything from the fundamentals of JavaScript, including variables, loops, functions, and objects, to advanced topics like asynchronous JavaScript, object-oriented programming, and modern tools used by professional developers. You’ll learn through practical examples, engaging projects, and in-depth theory lectures.
This course is perfect for beginners, intermediate learners, and even advanced developers looking to solidify their skills. It includes numerous coding challenges and assignments, providing you with ample opportunity to practice and apply your knowledge. The course is taught by Jonas, an experienced web developer and one of Udemy’s top instructors, who has helped over 700,000 developers learn JavaScript.
Key Features:
- Learn modern JavaScript (ES6+) from the beginning: arrow functions, destructuring, spread operator, and more.
- Gain a deep understanding of JavaScript fundamentals: variables, if/else, operators, boolean logic, functions, arrays, objects, loops, strings, and more.
- Explore how JavaScript works behind the scenes: engines, the call stack, hoisting, scoping, the ‘this’ keyword, reference values, and more.
- Master asynchronous JavaScript: the event loop, promises, async/await, and error handling.
- Dive into object-oriented programming: prototypal inheritance, constructor functions, classes, encapsulation, abstraction, inheritance, and polymorphism.
- Learn modern tools used by professional developers: NPM, Parcel (module bundler), Babel, and ES6 modules.
- Build 5 beautiful real-world projects for your portfolio.
- Access downloadable code for each section and slides for theory videos.
- Benefit from professional English captions and free support in the Q&A.
This comprehensive JavaScript course, completely free on Theetay, is your gateway to becoming a confident and skilled JavaScript developer. Enroll today and join the thousands of learners who have already mastered JavaScript through this exceptional course!
This course is available on platforms like Udemy, Udacity, Coursera, MasterClass, NearPeer, and other online learning platforms.
What Will You Learn?
- Become an advanced, confident, and modern JavaScript developer from scratch
- Build 6 beautiful real-world projects for your portfolio (not boring toy apps)
- Become job-ready by understanding how JavaScript really works behind the scenes
- How to think and work like a developer: problem-solving, researching, workflows
- JavaScript fundamentals: variables, if/else, operators, boolean logic, functions, arrays, objects, loops, strings, etc.
- Modern ES6+ from the beginning: arrow functions, destructuring, spread operator, optional chaining (ES2020), etc.
- Modern OOP: Classes, constructors, prototypal inheritance, encapsulation, etc.
- Complex concepts like the 'this' keyword, higher-order functions, closures, etc.
- Asynchronous JavaScript: Event loop, promises, async/await, AJAX calls and APIs
- How to architect your code using flowcharts and common patterns
- Modern tools for 2022 and beyond: NPM, Parcel, Babel and ES6 modules
- Practice your skills with 50+ challenges and assignments (solutions included)
- Get fast and friendly support in the Q&A area
- Course pathways: design your unique learning path according to your goals!
Course Content
01 – Welcome, Welcome, Welcome!
-
A Message from the Professor
-
001 Course Structure and Projects.mp4
00:00 -
002 Read Before You Start!.html
00:00 -
003 Watch Before You Start!.mp4
00:00 -
004 Setting Up Our Code Editor.mp4
00:00 -
external-links.txt
00:00 -
Section Quiz
02 – JavaScript Fundamentals – Part 1
-
001 Section Intro.mp4
00:00 -
002 Hello World!.mp4
00:00 -
003 A Brief Introduction to JavaScript.mp4
00:00 -
004 Linking a JavaScript File.mp4
00:00 -
005 Values and Variables.mp4
00:00 -
006 Practice Assignments.html
00:00 -
007 Data Types.mp4
00:00 -
008 let, const and var.mp4
00:00 -
009 Basic Operators.mp4
00:00 -
010 Operator Precedence.mp4
00:00 -
011 A Note About Challenges.html
00:00 -
013 CHALLENGE #1 Video Solution.mp4
00:00 -
014 Strings and Template Literals.mp4
00:00 -
015 Taking Decisions if else Statements.mp4
00:00 -
017 CHALLENGE #2 Video Solution.mp4
00:00 -
018 Type Conversion and Coercion.mp4
00:00 -
019 Truthy and Falsy Values.mp4
00:00 -
020 Equality Operators == vs. ===.mp4
00:00 -
021 Boolean Logic.mp4
00:00 -
022 Logical Operators.mp4
00:00 -
024 CHALLENGE #3 Video Solution.mp4
00:00 -
025 The switch Statement.mp4
00:00 -
026 Statements and Expressions.mp4
00:00 -
027 The Conditional (Ternary) Operator.mp4
00:00 -
029 CHALLENGE #4 Video Solution.mp4
00:00 -
030 JavaScript Releases ES5, ES6+ and ESNext.mp4
00:00
03 – JavaScript Fundamentals – Part 2
-
001 Section Intro.mp4
00:00 -
002 Activating Strict Mode.mp4
00:00 -
003 Functions.mp4
00:00 -
004 Function Declarations vs. Expressions.mp4
00:00 -
005 Arrow Functions.mp4
00:00 -
006 Functions Calling Other Functions.mp4
00:00 -
007 Reviewing Functions.mp4
00:00 -
009 CHALLENGE #1 Video Solution.mp4
00:00 -
010 Introduction to Arrays.mp4
00:00 -
011 Basic Array Operations (Methods).mp4
00:00 -
013 CHALLENGE #2 Video Solution.mp4
00:00 -
014 Introduction to Objects.mp4
00:00 -
015 Dot vs. Bracket Notation.mp4
00:00 -
016 Object Methods.mp4
00:00 -
018 CHALLENGE #3 Video Solution.mp4
00:00 -
019 Iteration The for Loop.mp4
00:00 -
020 Looping Arrays, Breaking and Continuing.mp4
00:00 -
021 Looping Backwards and Loops in Loops.mp4
00:00 -
022 The while Loop.mp4
00:00 -
024 CHALLENGE #4 Video Solution.mp4
00:00
04 – How to Navigate This Course
-
001 Pathways and Section Roadmaps.mp4
00:00 -
002 Course Pathways.html
00:00
05 – Developer Skills & Editor Setup
-
001 Section Intro.mp4
00:00 -
002 Section Roadmap.html
00:00 -
003 Setting up Prettier and VS Code.mp4
00:00 -
004 Installing Node.js and Setting Up a Dev Environment.mp4
00:00 -
005 Learning How to Code.mp4
00:00 -
006 How to Think Like a Developer Become a Problem Solver!.mp4
00:00 -
007 Using Google, StackOverflow and MDN.mp4
00:00 -
008 Debugging (Fixing Errors).mp4
00:00 -
009 Debugging with the Console and Breakpoints.mp4
00:00 -
010 Coding Challenge #1.mp4
00:00 -
external-links.txt
00:00 -
Section Quiz
06 – (OPTIONAL) HTML & CSS Crash Course
-
001 Section Intro.mp4
00:00 -
002 Basic HTML Structure and Elements.mp4
00:00 -
003 Attributes, Classes and IDs.mp4
00:00 -
004 Basic Styling with CSS.mp4
00:00 -
005 Introduction to the CSS Box Model.mp4
00:00 -
Section Quiz
07 – JavaScript in the Browser DOM and Events Fundamentals
-
001 Section Intro.mp4
00:00 -
002 Section Roadmap.html
00:00 -
003 PROJECT #1 Guess My Number!.mp4
00:00 -
004 What’s the DOM and DOM Manipulation.mp4
00:00 -
005 Selecting and Manipulating Elements.mp4
00:00 -
006 Handling Click Events.mp4
00:00 -
007 Implementing the Game Logic.mp4
00:00 -
008 Manipulating CSS Styles.mp4
00:00 -
009 Coding Challenge #1.mp4
00:00 -
010 Implementing Highscores.mp4
00:00 -
011 Refactoring Our Code The DRY Principle.mp4
00:00 -
012 PROJECT #2 Modal Window.mp4
00:00 -
013 Working With Classes.mp4
00:00 -
014 Handling an Esc Keypress Event.mp4
00:00 -
015 PROJECT #3 Pig Game.mp4
00:00 -
016 Rolling the Dice.mp4
00:00 -
017 Switching the Active Player.mp4
00:00 -
018 Holding Current Score.mp4
00:00 -
019 Resetting the Game.mp4
00:00 -
external-links.txt
00:00 -
Section Quiz
08 – How JavaScript Works Behind the Scenes
-
001 Section Intro.mp4
00:00 -
002 Section Roadmap.html
00:00 -
003 An High-Level Overview of JavaScript.mp4
00:00 -
004 The JavaScript Engine and Runtime.mp4
00:00 -
005 Execution Contexts and The Call Stack.mp4
00:00 -
006 Scope and The Scope Chain.mp4
00:00 -
007 Scoping in Practice.mp4
00:00 -
008 Variable Environment Hoisting and The TDZ.mp4
00:00 -
009 Hoisting and TDZ in Practice.mp4
00:00 -
010 The this Keyword.mp4
00:00 -
011 The this Keyword in Practice.mp4
00:00 -
012 Regular Functions vs. Arrow Functions.mp4
00:00 -
013 Primitives vs. Objects (Primitive vs. Reference Types).mp4
00:00 -
014 Primitives vs. Objects in Practice.mp4
00:00 -
external-links.txt
00:00
09 – Data Structures, Modern Operators and Strings
-
001 Section Intro.mp4
00:00 -
002 Section Roadmap.html
00:00 -
003 Destructuring Arrays.mp4
00:00 -
004 Destructuring Objects.mp4
00:00 -
005 The Spread Operator (…).mp4
00:00 -
006 Rest Pattern and Parameters.mp4
00:00 -
007 Short Circuiting (&& and ).mp4
00:00 -
008 The Nullish Coalescing Operator ().mp4
00:00 -
009 Logical Assignment Operators.mp4
00:00 -
010 Coding Challenge #1.mp4
00:00 -
011 Looping Arrays The for-of Loop.mp4
00:00 -
012 Enhanced Object Literals.mp4
00:00 -
013 Optional Chaining (.).mp4
00:00 -
014 Looping Objects Object Keys, Values, and Entries.mp4
00:00 -
015 Coding Challenge #2.mp4
00:00 -
016 Sets.mp4
00:00 -
017 Maps Fundamentals.mp4
00:00 -
018 Maps Iteration.mp4
00:00 -
019 Summary Which Data Structure to Use.mp4
00:00 -
020 Coding Challenge #3.mp4
00:00 -
021 Working With Strings – Part 1.mp4
00:00 -
022 Working With Strings – Part 2.mp4
00:00 -
023 Working With Strings – Part 3.mp4
00:00 -
024 Coding Challenge #4.mp4
00:00 -
025 String Methods Practice.mp4
00:00 -
external-links.txt
00:00 -
Section Quiz
10 – A Closer Look at Functions
-
001 Section Intro.mp4
00:00 -
002 Section Roadmap.html
00:00 -
003 Default Parameters.mp4
00:00 -
004 How Passing Arguments Works Value vs. Reference.mp4
00:00 -
005 First-Class and Higher-Order Functions.mp4
00:00 -
006 Functions Accepting Callback Functions.mp4
00:00 -
007 Functions Returning Functions.mp4
00:00 -
008 The call and apply Methods.mp4
00:00 -
009 The bind Method.mp4
00:00 -
010 Coding Challenge #1.mp4
00:00 -
011 Immediately Invoked Function Expressions (IIFE).mp4
00:00 -
012 Closures.mp4
00:00 -
013 More Closure Examples.mp4
00:00 -
014 Coding Challenge #2.mp4
00:00 -
external-links.txt
00:00 -
Section Quiz
11 – Working With Arrays
-
001 Section Intro.mp4
00:00 -
002 Section Roadmap.html
00:00 -
003 Simple Array Methods.mp4
00:00 -
004 The new at Method.mp4
00:00 -
005 Looping Arrays forEach.mp4
00:00 -
006 forEach With Maps and Sets.mp4
00:00 -
007 PROJECT Bankist App.mp4
00:00 -
008 Creating DOM Elements.mp4
00:00 -
009 Coding Challenge #1.mp4
00:00 -
010 Data Transformations map, filter, reduce.mp4
00:00 -
011 The map Method.mp4
00:00 -
012 Computing Usernames.mp4
00:00 -
013 The filter Method.mp4
00:00 -
014 The reduce Method.mp4
00:00 -
015 Coding Challenge #2.mp4
00:00 -
016 The Magic of Chaining Methods.mp4
00:00 -
017 Coding Challenge #3.mp4
00:00 -
018 The find Method.mp4
00:00 -
019 Implementing Login.mp4
00:00 -
020 Implementing Transfers.mp4
00:00 -
021 The findIndex Method.mp4
00:00 -
022 some and every.mp4
00:00 -
023 flat and flatMap.mp4
00:00 -
024 Sorting Arrays.mp4
00:00 -
025 More Ways of Creating and Filling Arrays.mp4
00:00 -
026 Summary Which Array Method to Use.mp4
00:00 -
027 Array Methods Practice.mp4
00:00 -
028 Coding Challenge #4.mp4
00:00 -
external-links.txt
00:00 -
Section Quiz
12 – Numbers, Dates, Intl and Timers
-
001 Section Intro.mp4
00:00 -
002 Section Roadmap.html
00:00 -
003 Converting and Checking Numbers.mp4
00:00 -
004 Math and Rounding.mp4
00:00 -
005 The Remainder Operator.mp4
00:00 -
006 Numeric Separators.mp4
00:00 -
007 Working with BigInt.mp4
00:00 -
008 Creating Dates.mp4
00:00 -
009 Adding Dates to Bankist App.mp4
00:00 -
010 Operations With Dates.mp4
00:00 -
011 Internationalizing Dates (Intl).mp4
00:00 -
012 Internationalizing Numbers (Intl).mp4
00:00 -
013 Timers setTimeout and setInterval.mp4
00:00 -
014 Implementing a Countdown Timer.mp4
00:00 -
external-links.txt
00:00 -
Section Quiz
13 – Advanced DOM and Events
-
001 Section Intro.mp4
00:00 -
002 Section Roadmap.html
00:00 -
003 PROJECT Bankist Website.mp4
00:00 -
004 How the DOM Really Works.mp4
00:00 -
005 Selecting, Creating, and Deleting Elements.mp4
00:00 -
006 Styles, Attributes and Classes.mp4
00:00 -
007 Implementing Smooth Scrolling.mp4
00:00 -
008 Types of Events and Event Handlers.mp4
00:00 -
009 Event Propagation Bubbling and Capturing.mp4
00:00 -
010 Event Propagation in Practice.mp4
00:00 -
011 Event Delegation Implementing Page Navigation.mp4
00:00 -
012 DOM Traversing.mp4
00:00 -
013 Building a Tabbed Component.mp4
00:00 -
014 Passing Arguments to Event Handlers.mp4
00:00 -
015 Implementing a Sticky Navigation The Scroll Event.mp4
00:00 -
016 A Better Way The Intersection Observer API.mp4
00:00 -
017 Revealing Elements on Scroll.mp4
00:00 -
018 Lazy Loading Images.mp4
00:00 -
019 Building a Slider Component Part 1.mp4
00:00 -
020 Building a Slider Component Part 2.mp4
00:00 -
021 Lifecycle DOM Events.mp4
00:00 -
022 Efficient Script Loading defer and async.mp4
00:00 -
external-links.txt
00:00 -
Section Quiz
14 – Object-Oriented Programming (OOP) With JavaScript
-
001 Section Intro.mp4
00:00 -
002 Section Roadmap.html
00:00 -
003 What is Object-Oriented Programming.mp4
00:00 -
004 OOP in JavaScript.mp4
00:00 -
005 Constructor Functions and the new Operator.mp4
00:00 -
006 Prototypes.mp4
00:00 -
007 Prototypal Inheritance and The Prototype Chain.mp4
00:00 -
008 Prototypal Inheritance on Built-In Objects.mp4
00:00 -
009 Coding Challenge #1.mp4
00:00 -
010 ES6 Classes.mp4
00:00 -
011 Setters and Getters.mp4
00:00 -
012 Static Methods.mp4
00:00 -
013 Object.create.mp4
00:00 -
014 Coding Challenge #2.mp4
00:00 -
015 Inheritance Between Classes Constructor Functions.mp4
00:00 -
016 Coding Challenge #3.mp4
00:00 -
017 Inheritance Between Classes ES6 Classes.mp4
00:00 -
018 Inheritance Between Classes Object.create.mp4
00:00 -
019 Another Class Example.mp4
00:00 -
020 Encapsulation Protected Properties and Methods.mp4
00:00 -
021 Encapsulation Private Class Fields and Methods.mp4
00:00 -
022 Chaining Methods.mp4
00:00 -
023 ES6 Classes Summary.mp4
00:00 -
024 Coding Challenge #4.mp4
00:00 -
external-links.txt
00:00 -
Section Quiz
15 – Mapty App OOP, Geolocation, External Libraries, and More!
-
001 Section Intro.mp4
00:00 -
002 Section Roadmap.html
00:00 -
003 Project Overview.mp4
00:00 -
004 How to Plan a Web Project.mp4
00:00 -
005 Using the Geolocation API.mp4
00:00 -
006 Displaying a Map Using Leaflet Library.mp4
00:00 -
007 Displaying a Map Marker.mp4
00:00 -
008 Rendering Workout Input Form.mp4
00:00 -
009 Project Architecture.mp4
00:00 -
010 Refactoring for Project Architecture.mp4
00:00 -
011 Managing Workout Data Creating Classes.mp4
00:00 -
012 Creating a New Workout.mp4
00:00 -
013 Rendering Workouts.mp4
00:00 -
014 Move to Marker On Click.mp4
00:00 -
015 Working with localStorage.mp4
00:00 -
016 Final Considerations.mp4
00:00 -
external-links.txt
00:00 -
Section Quiz
16 – Asynchronous JavaScript Promises, AsyncAwait, and AJAX
-
001 Section Intro.mp4
00:00 -
002 Section Roadmap.html
00:00 -
003 Asynchronous JavaScript, AJAX and APIs.mp4
00:00 -
004 IMPORTANT API URL Change.html
00:00 -
005 Our First AJAX Call XMLHttpRequest.mp4
00:00 -
006 (OPTIONAL) How the Web Works Requests and Responses.mp4
00:00 -
007 Welcome to Callback Hell.mp4
00:00 -
008 Promises and the Fetch API.mp4
00:00 -
009 Consuming Promises.mp4
00:00 -
010 Chaining Promises.mp4
00:00 -
011 Handling Rejected Promises.mp4
00:00 -
012 Throwing Errors Manually.mp4
00:00 -
013 Coding Challenge #1.mp4
00:00 -
014 Asynchronous Behind the Scenes The Event Loop.mp4
00:00 -
015 The Event Loop in Practice.mp4
00:00 -
016 Building a Simple Promise.mp4
00:00 -
017 Promisifying the Geolocation API.mp4
00:00 -
018 Coding Challenge #2.mp4
00:00 -
019 Consuming Promises with AsyncAwait.mp4
00:00 -
020 Error Handling With try…catch.mp4
00:00 -
021 Returning Values from Async Functions.mp4
00:00 -
022 Running Promises in Parallel.mp4
00:00 -
023 Other Promise Combinators race, allSettled and any.mp4
00:00 -
024 Coding Challenge #3.mp4
00:00 -
external-links.txt
00:00 -
Section Quiz
17 – Modern JavaScript Development Modules, Tooling, and Functional
-
001 Section Intro.mp4
00:00 -
002 Section Roadmap.html
00:00 -
003 An Overview of Modern JavaScript Development.mp4
00:00 -
004 An Overview of Modules in JavaScript.mp4
00:00 -
005 Exporting and Importing in ES6 Modules.mp4
00:00 -
006 Top-Level await (ES2022).mp4
00:00 -
007 The Module Pattern.mp4
00:00 -
008 CommonJS Modules.mp4
00:00 -
009 A Brief Introduction to the Command Line.mp4
00:00 -
010 Introduction to NPM.mp4
00:00 -
011 Bundling With Parcel and NPM Scripts.mp4
00:00 -
012 Configuring Babel and Polyfilling.mp4
00:00 -
013 Review Writing Clean and Modern JavaScript.mp4
00:00 -
014 Let’s Fix Some Bad Code Part 1.mp4
00:00 -
015 Declarative and Functional JavaScript Principles.mp4
00:00 -
016 Let’s Fix Some Bad Code Part 2.mp4
00:00 -
external-links.txt
00:00 -
Section Quiz
18 – Forkify App Building a Modern Application
-
001 Section Intro.mp4
00:00 -
002 Section Roadmap.html
00:00 -
003 Project Overview and Planning (I).mp4
00:00 -
004 Latest Code Updates (Parcel v2 and more).html
00:00 -
005 Loading a Recipe from API.mp4
00:00 -
006 Rendering the Recipe.mp4
00:00 -
007 Listening For load and hashchange Events.mp4
00:00 -
008 The MVC Architecture.mp4
00:00 -
009 Refactoring for MVC.mp4
00:00 -
010 Helpers and Configuration Files.mp4
00:00 -
011 Event Handlers in MVC Publisher-Subscriber Pattern.mp4
00:00 -
012 Implementing Error and Success Messages.mp4
00:00 -
013 Implementing Search Results – Part 1.mp4
00:00 -
014 Implementing Search Results – Part 2.mp4
00:00 -
015 Implementing Pagination – Part 1.mp4
00:00 -
016 Implementing Pagination – Part 2.mp4
00:00 -
017 Project Planning II.mp4
00:00 -
018 Updating Recipe Servings.mp4
00:00 -
019 Developing a DOM Updating Algorithm.mp4
00:00 -
020 Implementing Bookmarks – Part 1.mp4
00:00 -
021 Implementing Bookmarks – Part 2.mp4
00:00 -
022 Storing Bookmarks With localStorage.mp4
00:00 -
023 Project Planning III.mp4
00:00 -
024 Uploading a New Recipe – Part 1.mp4
00:00 -
025 Uploading a New Recipe – Part 2.mp4
00:00 -
026 Uploading a New Recipe – Part 3.mp4
00:00 -
027 Wrapping Up Final Considerations.mp4
00:00 -
external-links.txt
00:00 -
Section Quiz
19 – Setting Up Git and Deployment
-
001 Section Intro.mp4
00:00 -
002 Section Roadmap.html
00:00 -
003 Simple Deployment With Netlify.mp4
00:00 -
004 Setting Up Git and GitHub.mp4
00:00 -
005 Git Fundamentals.mp4
00:00 -
006 Pushing to GitHub.mp4
00:00 -
007 Setting Up Continuous Integration With Netlify.mp4
00:00 -
external-links.txt
00:00 -
Section Quiz
20 – The End!
-
001 Where to Go from Here.mp4
00:00 -
002 My Other Courses + Updates.html
00:00
21 – (LEGACY) Access the Old Course
-
001 Access the Old Course.html
00:00
Earn a certificate
Add this certificate to your resume to demonstrate your skills & increase your chances of getting noticed.