Section 1 : Welcome, Welcome, Welcome!

Lecture 1 NTRODUCTION TO BRAINMEASURES PROCTOR SYSTEM
Lecture 2 About Certification
Lecture 3 Read Before You Start!
Lecture 4 Migration Guide to v2 + Old Course
Lecture 5 Setting Up Our Code Editor 00:07:59 Duration

Section 2 : JavaScript Fundamentals – Part 1

Lecture 1 Section Intro 00:00:44 Duration
Lecture 2 Hello World! 00:05:49 Duration
Lecture 3 A Brief Introduction to JavaScript 00:10:53 Duration
Lecture 4 Linking a JavaScript File 00:15:37 Duration
Lecture 5 Values and Variables 00:15:50 Duration
Lecture 6 Practice Assignments
Lecture 7 Data Types 00:18:47 Duration
Lecture 8 let, const and var 00:09:46 Duration
Lecture 9 Basic Operators
Lecture 10 Operator Precedence 00:11:09 Duration
Lecture 11 Coding Challenge #1 00:09:56 Duration
Lecture 12 Strings and Template Literals 00:10:43 Duration
Lecture 13 Taking Decisions if else Statements 00:12:32 Duration
Lecture 14 Coding Challenge #2 00:06:06 Duration
Lecture 15 Type Conversion and Coercion 00:16:34 Duration
Lecture 16 Truthy and Falsy Values 00:09:42 Duration
Lecture 17 Equality Operators == vs 00:15:14 Duration
Lecture 18 Boolean Logic 00:08:09 Duration
Lecture 19 Logical Operators 00:10:26 Duration
Lecture 20 Coding Challenge #3 00:14:57 Duration
Lecture 21 The switch Statement 00:12:52 Duration
Lecture 22 Statements and Expressions 00:05:47 Duration
Lecture 23 The Conditional (Ternary) Operator 00:09:40 Duration
Lecture 24 Coding Challenge #4 00:08:52 Duration
Lecture 25 JavaScript Releases ES5, ES6+ and ESNext 00:13:40 Duration

Section 3 : JavaScript Fundamentals – Part 2

Lecture 1 Section Intro 00:00:28 Duration
Lecture 2 Activating Strict Mode 00:09:42 Duration
Lecture 3 Functions 00:18:49 Duration
Lecture 4 Function Declarations vs 00:10:08 Duration
Lecture 5 Arrow Functions 00:09:35 Duration
Lecture 6 Functions Calling Other Functions 00:09:43 Duration
Lecture 7 Reviewing Functions 00:15:19 Duration
Lecture 8 Coding Challenge #1 00:17:58 Duration
Lecture 9 Introduction to Arrays 00:21:22 Duration
Lecture 10 Basic Array Operations (Methods) 00:12:30 Duration
Lecture 11 Coding Challenge #2 00:09:24 Duration
Lecture 12 Introduction to Objects 00:05:56 Duration
Lecture 13 Dot vs 00:19:05 Duration
Lecture 14 Object Methods 00:22:52 Duration
Lecture 15 Coding Challenge #3 00:12:46 Duration
Lecture 16 Iteration The for Loop 00:10:45 Duration
Lecture 17 Looping Arrays, Breaking and Continuing 00:21:47 Duration
Lecture 18 Looping Backwards and Loops in Loops 00:11:34 Duration
Lecture 19 The while Loop 00:11:33 Duration
Lecture 20 Coding Challenge #4 00:15:26 Duration

Section 4 : How to Navigate This Course

Lecture 1 Pathways and Section Roadmaps 00:03:57 Duration
Lecture 2 Course Pathways

Section 5 : Developer Skills & Editor Setup

Lecture 1 Section Intro 00:00:30 Duration
Lecture 2 Section Roadmap
Lecture 3 Setting up Prettier and VS Code 00:15:42 Duration
Lecture 4 Installing Node 00:11:05 Duration
Lecture 5 Learning How to Code 00:17:01 Duration
Lecture 6 How to Think Like a Developer Become a Proble 00:10:17 Duration
Lecture 7 Using Google, StackOverflow and MDN 00:26:20 Duration
Lecture 8 Debugging (Fixing Errors) 00:04:44 Duration
Lecture 9 Debugging with the Console and Breakpoints 00:19:13 Duration
Lecture 10 Coding Challenge #1 00:15:02 Duration

Section 6 : [OPTIONAL] HTML & CSS Crash Course

Lecture 1 Section Intro 00:00:31 Duration
Lecture 2 Basic HTML Structure and Elements 00:08:49 Duration
Lecture 3 Attributes, Classes and IDs 00:12:55 Duration
Lecture 4 Basic Styling with CSS 00:11:49 Duration
Lecture 5 Introduction to the CSS Box Model 00:20:38 Duration

Section 7 : JavaScript in the Browser DOM and Events Fundamentals

Lecture 1 Section Roadmap
Lecture 2 Section Intro 00:00:41 Duration
Lecture 3 PROJECT #1 Guess My Number! 00:08:33 Duration
Lecture 4 What's the DOM and DOM Manipulation 00:06:14 Duration
Lecture 5 Selecting and Manipulating Elements 00:08:07 Duration
Lecture 6 Handling Click Events 00:12:40 Duration
Lecture 7 Implementing the Game Logic 00:19:21 Duration
Lecture 8 Manipulating CSS Styles 00:08:03 Duration
Lecture 9 Coding Challenge #1 00:11:19 Duration
Lecture 10 Implementing Highscores 00:07:34 Duration
Lecture 11 Refactoring Our Code The DRY Principle 00:14:48 Duration
Lecture 12 PROJECT #2 Modal Window 00:13:10 Duration
Lecture 13 Working With Classes 00:16:45 Duration
Lecture 14 Handling an Esc Keypress Event 00:14:05 Duration
Lecture 15 PROJECT #3 Pig Game 00:16:41 Duration
Lecture 16 Rolling the Dice 00:15:43 Duration
Lecture 17 Switching the Active Player 00:15:00 Duration
Lecture 18 Holding Current Score 00:24:46 Duration
Lecture 19 Resetting the Game 00:15:20 Duration

Section 8 : How JavaScript Works Behind the Scenes

Lecture 1 Section Intro 00:01:22 Duration
Lecture 2 Section Roadmap
Lecture 3 An High-Level Overview of JavaScript 00:11:41 Duration
Lecture 4 The JavaScript Engine and Runtime 00:13:18 Duration
Lecture 5 Execution Contexts and The Call Stack 00:17:28 Duration
Lecture 6 Scope and The Scope Chain 00:25:05 Duration
Lecture 7 Scoping in Practice 00:20:58 Duration
Lecture 8 Variable Environment Hoisting and The TDZ 00:10:46 Duration
Lecture 9 Hoisting and TDZ in Practice 00:14:25 Duration
Lecture 10 The this Keyword 00:06:10 Duration
Lecture 11 The this Keyword in Practice 00:13:02 Duration
Lecture 12 Regular Functions vs 00:17:46 Duration
Lecture 13 Primitives vs 00:15:30 Duration
Lecture 14 Primitives vs 00:14:43 Duration

Section 9 : Data Structures, Modern Operators and Strings

Lecture 1 Section Intro 00:00:45 Duration
Lecture 2 Section Roadmap
Lecture 3 Destructuring Arrays 00:19:24 Duration
Lecture 4 Destructuring Objects 00:19:33 Duration
Lecture 5 The Spread Operator ( 00:21:07 Duration
Lecture 6 Rest Pattern and Parameters 00:18:51 Duration
Lecture 7 Short Circuiting (&& and ) 00:15:35 Duration
Lecture 8 The Nullish Coalescing Operator () 00:03:20 Duration
Lecture 9 Coding Challenge #1 00:14:41 Duration
Lecture 10 Looping Arrays The for-of Loop 00:07:06 Duration
Lecture 11 Enhanced Object Literals 00:06:41 Duration
Lecture 12 Optional Chaining ( 00:15:54 Duration
Lecture 13 Looping Objects Object Keys, Values, and Entries 00:09:51 Duration
Lecture 14 Coding Challenge #2 00:14:21 Duration
Lecture 15 Sets 00:12:41 Duration
Lecture 16 Maps Fundamentals 00:13:51 Duration
Lecture 17 Maps Iteration 00:12:31 Duration
Lecture 18 Summary Which Data Structure to Use 00:08:57 Duration
Lecture 19 Coding Challenge #3 00:09:27 Duration
Lecture 20 Working With Strings - Part 1 00:16:10 Duration
Lecture 21 Working With Strings - Part 2 00:21:07 Duration
Lecture 22 Working With Strings - Part 3 00:21:30 Duration
Lecture 23 Coding Challenge #4 00:15:04 Duration
Lecture 24 String Methods Practice

Section 10 : A Closer Look at Functions

Lecture 1 Section Intro 00:00:40 Duration
Lecture 2 Section Roadmap
Lecture 3 Default Parameters 00:09:22 Duration
Lecture 4 How Passing Arguments Works Value vs 00:12:59 Duration
Lecture 5 First-Class and Higher-Order Functions 00:05:01 Duration
Lecture 6 Functions Accepting Callback Functions 00:14:59 Duration
Lecture 7 Functions Returning Functions 00:06:23 Duration
Lecture 8 The call and apply Methods 00:16:36 Duration
Lecture 9 The bind Method 00:21:25 Duration
Lecture 10 Coding Challenge #1 00:18:33 Duration
Lecture 11 Immediately Invoked Function Expressions (IIFE) 00:07:38 Duration
Lecture 12 Closures 00:18:52 Duration
Lecture 13 More Closure Examples 00:15:16 Duration
Lecture 14 Coding Challenge #2 00:05:11 Duration

Section 11 : Working With Arrays

Lecture 1 Section Intro
Lecture 2 Section Roadmap
Lecture 3 Simple Array Methods 00:16:19 Duration
Lecture 4 Looping Arrays forEach 00:13:25 Duration
Lecture 5 forEach With Maps and Sets 00:05:11 Duration
Lecture 6 PROJECT Bankist App 00:09:24 Duration
Lecture 7 Creating DOM Elements 00:18:18 Duration
Lecture 8 Coding Challenge #1 00:08:20 Duration
Lecture 9 Data Transformations map, filter, reduce 00:04:07 Duration
Lecture 10 The map Method 00:15:27 Duration
Lecture 11 Computing Usernames 00:12:03 Duration
Lecture 12 The filter Method 00:06:03 Duration
Lecture 13 The reduce Method 00:20:46 Duration
Lecture 14 Coding Challenge #2 00:09:49 Duration
Lecture 15 The Magic of Chaining Methods 00:19:20 Duration
Lecture 16 Coding Challenge #3 00:03:45 Duration
Lecture 17 The find Method 00:06:26 Duration
Lecture 18 Implementing Login 00:24:03 Duration
Lecture 19 Implementing Transfers 00:20:41 Duration
Lecture 20 The findIndex Method 00:12:11 Duration
Lecture 21 some and every 00:14:54 Duration
Lecture 22 flat and flatMap 00:09:15 Duration
Lecture 23 Sorting Arrays 00:21:33 Duration
Lecture 24 More Ways of Creating and Filling Arrays 00:20:21 Duration
Lecture 25 Summary Which Array Method to Use 00:05:28 Duration
Lecture 26 Array Methods Practice 00:31:55 Duration
Lecture 27 Coding Challenge #4 00:23:27 Duration

Section 12 : Numbers, Dates, Intl and Timers

Lecture 1 Section Intro 00:00:40 Duration
Lecture 2 Section Roadmap
Lecture 3 Converting and Checking Numbers 00:16:26 Duration
Lecture 4 Math and Rounding 00:18:03 Duration
Lecture 5 The Remainder Operator 00:10:35 Duration
Lecture 6 Working with BigInt 00:10:58 Duration
Lecture 7 Creating Dates 00:12:34 Duration
Lecture 8 Adding Dates to Bankist App 00:22:07 Duration
Lecture 9 Operations With Dates 00:15:18 Duration
Lecture 10 Internationalizing Dates (Intl) 00:16:12 Duration
Lecture 11 Internationalizing Numbers (Intl)
Lecture 12 Timers setTimeout and setInterval 00:13:27 Duration
Lecture 13 Implementing a Countdown Timer 00:27:57 Duration

Section 13 : Advanced DOM and Events

Lecture 1 Section Intro 00:00:55 Duration
Lecture 2 Section Roadmap
Lecture 3 PROJECT Bankist Website 00:08:37 Duration
Lecture 4 How the DOM Really Works 00:10:08 Duration
Lecture 5 Selecting, Creating, and Deleting Elements 00:19:50 Duration
Lecture 6 Styles, Attributes and Classes 00:21:03 Duration
Lecture 7 Implementing Smooth Scrolling 00:15:40 Duration
Lecture 8 Types of Events and Event Handlers 00:10:12 Duration
Lecture 9 Event Propagation Bubbling and Capturing 00:04:46 Duration
Lecture 10 Event Propagation in Practice 00:17:33 Duration
Lecture 11 Event Delegation Implementing Page Navigation 00:18:37 Duration
Lecture 12 DOM Traversing 00:13:56 Duration
Lecture 13 Building a Tabbed Component 00:23:45 Duration
Lecture 14 Passing Arguments to Event Handlers 00:18:15 Duration
Lecture 15 Implementing a Sticky Navigation The Scroll Event 00:07:33 Duration
Lecture 16 A Better Way The Intersection Observer API 00:23:42 Duration
Lecture 17 Revealing Elements on Scroll 00:12:13 Duration
Lecture 18 Lazy Loading Images 00:17:58 Duration
Lecture 19 Building a Slider Component Part 1 00:22:57 Duration
Lecture 20 Building a Slider Component Part 2 00:19:25 Duration
Lecture 21 Lifecycle DOM Events 00:09:01 Duration
Lecture 22 Efficient Script Loading defer and async 00:13:18 Duration

Section 14 : Object-Oriented Programming (OOP) With JavaScript

Lecture 1 Section Intro 00:00:57 Duration
Lecture 2 Section Roadmap
Lecture 3 What is Object-Oriented Programming 00:20:22 Duration
Lecture 4 OOP in JavaScript 00:09:37 Duration
Lecture 5 Constructor Functions and the new Operator 00:14:06 Duration
Lecture 6 Prototypes 00:14:23 Duration
Lecture 7 Prototypal Inheritance and The Prototype Chain 00:10:40 Duration
Lecture 8 Prototypal Inheritance on Built-In Objects 00:14:30 Duration
Lecture 9 Coding Challenge #1 00:07:18 Duration
Lecture 10 ES6 Classes 00:12:33 Duration
Lecture 11 Setters and Getters 00:13:01 Duration
Lecture 12 Static Methods 00:06:14 Duration
Lecture 13 Object 00:10:25 Duration
Lecture 14 Coding Challenge #2 00:05:47 Duration
Lecture 15 Inheritance Between Classes Constructor Functions
Lecture 16 Coding Challenge #3 00:10:24 Duration
Lecture 17 Inheritance Between Classes ES6 Classes 00:10:28 Duration
Lecture 18 Inheritance Between Classes Object 00:08:34 Duration
Lecture 19 Another Class Example 00:10:33 Duration
Lecture 20 Encapsulation Protected Properties and Methods 00:06:29 Duration
Lecture 21 Encapsulation Private Class Fields and Methods 00:15:53 Duration
Lecture 22 Chaining Methods 00:04:09 Duration
Lecture 23 ES6 Classes Summary 00:06:42 Duration
Lecture 24 Coding Challenge #4 00:08:43 Duration

Section 15 : Mapty App OOP, Geolocation, External Libraries, and More!

Lecture 1 Section Intro 00:00:49 Duration
Lecture 2 Section Roadmap
Lecture 3 Project Overview 00:04:42 Duration
Lecture 4 How to Plan a Web Project 00:17:19 Duration
Lecture 5 Using the Geolocation API 00:07:54 Duration
Lecture 6 Displaying a Map Using Leaflet Library 00:13:35 Duration
Lecture 7 Displaying a Map Marker 00:19:28 Duration
Lecture 8 Rendering Workout Input Form 00:16:29 Duration
Lecture 9 Project Architecture 00:09:14 Duration
Lecture 10 Refactoring for Project Architecture 00:23:51 Duration
Lecture 11 Managing Workout Data Creating Classes 00:15:58 Duration
Lecture 12 Creating a New Workout 00:33:45 Duration
Lecture 13 Rendering Workouts 00:24:06 Duration
Lecture 14 Move to Marker On Click 00:16:17 Duration
Lecture 15 Working with localStorage 00:25:17 Duration
Lecture 16 Final Considerations 00:05:13 Duration

Section 16 : Asynchronous JavaScript Promises, AsyncAwait, and AJAX

Lecture 1 Section Intro 00:00:47 Duration
Lecture 2 Section Roadmap
Lecture 3 Asynchronous JavaScript, AJAX and APIs 00:17:31 Duration
Lecture 4 Our First AJAX Call XMLHttpRequest 00:18:53 Duration
Lecture 5 [OPTIONAL] How the Web Works Requests 00:12:57 Duration
Lecture 6 Welcome to Callback Hell 00:13:11 Duration
Lecture 7 Promises and the Fetch API 00:09:04 Duration
Lecture 8 Consuming Promises 00:09:09 Duration
Lecture 9 Chaining Promises 00:08:59 Duration
Lecture 10 Handling Rejected Promises 00:15:38 Duration
Lecture 11 Throwing Errors Manually 00:15:12 Duration
Lecture 12 Coding Challenge #1 00:16:14 Duration
Lecture 13 Asynchronous Behind the Scenes The Event Loop 00:17:24 Duration
Lecture 14 The Event Loop in Practice 00:09:02 Duration
Lecture 15 Building a Simple Promise 00:19:54 Duration
Lecture 16 Promisifying the Geolocation API 00:13:04 Duration
Lecture 17 Coding Challenge #2 00:15:43 Duration
Lecture 18 Consuming Promises with AsyncAwait 00:14:38 Duration
Lecture 19 Error Handling With try 00:09:53 Duration
Lecture 20 Returning Values from Async Functions 00:14:13 Duration
Lecture 21 Running Promises in Parallel 00:10:35 Duration
Lecture 22 Other Promise Combinators race, allSettled 00:13:03 Duration
Lecture 23 Coding Challenge #3 00:17:12 Duration

Section 17 : Modern JavaScript Development Modules, Tooling, and Functional

Lecture 1 Section Intro 00:00:37 Duration
Lecture 2 Section Roadmap
Lecture 3 An Overview of Modern JavaScript Development 00:06:04 Duration
Lecture 4 An Overview of Modules in JavaScript 00:14:43 Duration
Lecture 5 Exporting and Importing in ES6 Modules 00:22:21 Duration
Lecture 6 The Module Pattern 00:09:47 Duration
Lecture 7 CommonJS Modules 00:03:51 Duration
Lecture 8 A Brief Introduction to the Command Line 00:11:46 Duration
Lecture 9 Introduction to NPM 00:18:18 Duration
Lecture 10 Bundling With Parcel and NPM Scripts 00:20:55 Duration
Lecture 11 Configuring Babel and Polyfilling 00:17:10 Duration
Lecture 12 Review Writing Clean and Modern JavaScript 00:09:54 Duration
Lecture 13 Let's Fix Some Bad Code Part 1 00:23:02 Duration
Lecture 14 Declarative and Functional JavaScript Principles 00:11:46 Duration
Lecture 15 Let's Fix Some Bad Code Part 2 00:37:40 Duration

Section 18 : Forkify App Building a Modern Application

Lecture 1 Section Intro 00:00:47 Duration
Lecture 2 Section Roadmap
Lecture 3 Project Overview and Planning (I) 00:13:51 Duration
Lecture 4 Loading a Recipe from API 00:23:57 Duration
Lecture 5 Rendering the Recipe 00:22:11 Duration
Lecture 6 Listening For load and hashchange Events 00:10:46 Duration
Lecture 7 The MVC Architecture 00:15:58 Duration
Lecture 8 Refactoring for MVC 00:38:26 Duration
Lecture 9 Helpers and Configuration Files 00:20:53 Duration
Lecture 10 Event Handlers in MVC Publisher-Subscriber Pattern 00:14:52 Duration
Lecture 11 Implementing Error and Success Messages 00:11:18 Duration
Lecture 12 Implementing Search Results - Part 1 00:25:31 Duration
Lecture 13 Implementing Search Results - Part 2 00:28:00 Duration
Lecture 14 Implementing Pagination - Part 1 00:12:04 Duration
Lecture 15 Implementing Pagination - Part 2 00:36:55 Duration
Lecture 16 Project Planning II 00:02:45 Duration
Lecture 17 Updating Recipe Servings 00:26:28 Duration
Lecture 18 Developing a DOM Updating Algorithm 00:34:06 Duration
Lecture 19 Implementing Bookmarks - Part 1 00:25:35 Duration
Lecture 20 Implementing Bookmarks - Part 2 00:18:20 Duration
Lecture 21 Storing Bookmarks With localStorage 00:17:52 Duration
Lecture 22 Project Planning III 00:01:49 Duration
Lecture 23 Uploading a New Recipe - Part 1 00:17:23 Duration
Lecture 24 Uploading a New Recipe - Part 2 00:40:12 Duration
Lecture 25 Uploading a New Recipe - Part 3 00:19:42 Duration
Lecture 26 Wrapping Up Final Considerations 00:14:12 Duration

Section 19 : Setting Up Git and Deployment

Lecture 1 Section Intro 00:00:35 Duration
Lecture 2 Section Roadmap
Lecture 3 Simple Deployment With Netlify 00:11:05 Duration
Lecture 4 Setting Up Git and GitHub 00:06:47 Duration
Lecture 5 Git Fundamentals 00:19:09 Duration
Lecture 6 Pushing to GitHub 00:09:08 Duration
Lecture 7 Setting Up Continuous Integration With Netlify 00:09:56 Duration
Lecture 8 About Proctor Testing