Section 1 : Introduction

Lecture 1 INTRODUCTION TO BRAINMEASURES PROCTOR SYSTEM
Lecture 2 What is JavaScript 00:03:45 Duration
Lecture 3 JavaScript in Action! 00:07:20 Duration
Lecture 4 INTRODUCTION TO BRAINMEASURES PROCTOR SYSTEM
Lecture 5 How JavaScript Is Executed 00:03:15 Duration
Lecture 6 Dynamic vs Weakly Typed Languages 00:03:24 Duration
Lecture 7 JavaScript Runs In A Host Environment 00:04:41 Duration
Lecture 8 Course Outline - What Is In The Course 00:06:00 Duration
Lecture 9 How To Get The Most Out Of This Course 00:02:37 Duration
Lecture 10 Using Course Resources
Lecture 11 JavaScript vs Java 00:04:02 Duration
Lecture 12 A Brief History Of JavaScript 00:06:03 Duration
Lecture 13 Setting Up a Development Environment 00:10:34 Duration
Lecture 14 About Certification

Section 2 : Basics Variables, Data Types, Operators & Functions

Lecture 1 Module Introduction 00:01:17 Duration
Lecture 2 Setting Up the Project 00:04:25 Duration
Lecture 3 More on Version Control & Git
Lecture 4 Adding JavaScript to the Website 00:06:43 Duration
Lecture 5 Introducing Variables & Constants 00:05:17 Duration
Lecture 6 Declaring & Defining Variables 00:07:10 Duration
Lecture 7 Working with Variables & Operators 00:06:17 Duration
Lecture 8 Understanding the Starting Code 00:01:21 Duration
Lecture 9 Data Types Numbers & Strings (Text) 00:06:01 Duration
Lecture 10 Using Constants 00:05:11 Duration
Lecture 11 More on Strings 00:15:51 Duration
Lecture 12 Introducing Functions 00:05:50 Duration
Lecture 13 Adding A Custom Function 00:11:23 Duration
Lecture 14 Code Styles, Conventions & Syntax
Lecture 15 Returning Values 00:04:31 Duration
Lecture 16 The (Un)Importance of Code Order 00:04:34 Duration
Lecture 17 An Introduction to Global & Local Scope 00:05:32 Duration
Lecture 18 Shadowed Variables
Lecture 19 More about the return Statement 00:02:24 Duration
Lecture 20 Executing Functions Indirectly 00:11:10 Duration
Lecture 21 Indirect vs Direct Function Execution - Summar
Lecture 22 Converting Data Types 00:06:15 Duration
Lecture 23 Mixing Numbers & Strings
Lecture 24 Splitting Code into Functions 00:05:49 Duration
Lecture 25 Connecting all Buttons to Functions 00:07:44 Duration
Lecture 26 Working with Code Comments 00:04:09 Duration
Lecture 27 More Operators! 00:06:39 Duration
Lecture 28 More Core Data Types! 00:04:31 Duration
Lecture 29 Using Arrays 00:08:53 Duration
Lecture 30 Creating Objects 00:06:02 Duration
Lecture 31 Objects - Common Syntax Gotchas
Lecture 32 Accessing Object Data 00:02:51 Duration
Lecture 33 Adding a Re-Usable Function That Uses Objects 00:05:24 Duration
Lecture 34 undefined, null & NaN 00:06:21 Duration
Lecture 35 The typeof Operator 00:03:12 Duration
Lecture 36 Importing Scripts Correctly with defer & async 00:14:38 Duration
Lecture 37 Importing JavaScript - Summary
Lecture 38 Wrap Up 00:02:14 Duration
Lecture 39 Useful Resources & Links

Section 3 : Efficient Development & Debugging

Lecture 1 Module Introduction 00:01:29 Duration
Lecture 2 Efficient Development & Debugging - An Overvie 00:03:19 Duration
Lecture 3 Configuring the IDE Look & Feel 00:02:26 Duration
Lecture 4 Using Shortcuts 00:04:12 Duration
Lecture 5 Working with Auto-Completion & IDE Hints 00:04:34 Duration
Lecture 6 Installing IDE Extensions 00:02:04 Duration
Lecture 7 Tweaking Editor Settings 00:02:15 Duration
Lecture 8 Utilizing Different IDE Views 00:01:42 Duration
Lecture 9 Finding Help & Working with MDN 00:05:53 Duration
Lecture 10 The ECMAScript Standard
Lecture 11 How to google Correctly 00:01:45 Duration
Lecture 12 Debugging JavaScript - An Overview 00:03:18 Duration
Lecture 13 An Error Message! No Reason To Panic! 00:04:46 Duration
Lecture 14 Using console.log() to look into the Code 00:03:49 Duration
Lecture 15 Next-Level Debugging with the Chrome Devtools 00:08:20 Duration
Lecture 16 INTRODUCTION TO BRAINMEASURES PROCTOR SYSTEM
Lecture 17 Debugging Code directly Inside VS Code 00:04:55 Duration
Lecture 18 Wrap Up 00:01:22 Duration
Lecture 19 Useful Resources & Links

Section 4 : Working with Control Structures (if Statements, Loops, Error

Lecture 1 About Certification
Lecture 2 Introducing if Statements & Boolean (Compariso 00:09:27 Duration
Lecture 3 Using Booleans in Conditions & More on Text Co
Lecture 4 Using if Statements 00:07:23 Duration
Lecture 5 Working with if, else and else-if 00:05:11 Duration
Lecture 6 Beware When Comparing Objects & Arrays for Equ 00:04:06 Duration
Lecture 7 The Logical AND and OR Operators 00:09:00 Duration
Lecture 8 Understanding Operator Precedence 00:07:20 Duration
Lecture 9 Beyond true false Truthy and Falsy Values 00:07:30 Duration
Lecture 10 Coercion vs Conversion
Lecture 11 Setting Up a Bigger Example Project (The Monst 00:03:00 Duration
Lecture 12 Adding an Attack Function 00:07:57 Duration
Lecture 13 Using if Statements for Checking the Win-Condi 00:09:17 Duration
Lecture 14 Adding More if Statements & A Strong Attack Fu 00:07:41 Duration
Lecture 15 Time for a Heal Player Functionality! 00:10:15 Duration
Lecture 16 Controlling the Conditional Bonus Life (Withou 00:06:00 Duration
Lecture 17 Adding a Reset Game Functionality 00:06:01 Duration
Lecture 18 Validating User Input 00:06:18 Duration
Lecture 19 Utilizing Global Constants as Identifiers in 00:03:21 Duration
Lecture 20 Adding a Conditional Battle Log 00:16:37 Duration
Lecture 21 Introducing the Ternary Operator 00:07:32 Duration
Lecture 22 A Bit of Theory Statements vs Expressions 00:01:41 Duration
Lecture 23 Logical Operator Tricks & Shorthands 00:12:58 Duration
Lecture 24 Logical Operators - A Quick Summary
Lecture 25 Working with the switch-case Statement 00:07:10 Duration
Lecture 26 Introducing Loops 00:06:40 Duration
Lecture 27 The for Loop 00:07:38 Duration
Lecture 28 The for-of Loop 00:05:17 Duration
Lecture 29 The for-in Loop 00:06:49 Duration
Lecture 30 The while & do-while Loops 00:08:00 Duration
Lecture 31 Controlling Loops with break 00:08:12 Duration
Lecture 32 Controlling Iterations with continue 00:02:21 Duration
Lecture 33 More Control with Labeled Statements 00:06:26 Duration
Lecture 34 Error Handling with try-catch - An Introducti 00:02:25 Duration
Lecture 35 Throwing Custom Errors 00:05:17 Duration
Lecture 36 Working with try-catch to Catch & Handle Erro 00:08:14 Duration
Lecture 37 Wrap Up 00:03:21 Duration
Lecture 38 Useful Resources & Links

Section 5 : Behind the Scenes & The (Weird) Past (ES3, ES5) & Present (E

Lecture 1 Module Introduction 00:01:44 Duration
Lecture 2 ES5 vs ES6+ (Next Gen JS) - Evolution of Java 00:08:14 Duration
Lecture 3 var vs let & const - Introducing Block Scope 00:14:33 Duration
Lecture 4 Understanding Hoisting 00:04:07 Duration
Lecture 5 Strict Mode & Writing Good Code 00:05:47 Duration
Lecture 6 How Code is Parsed & Compiled 00:08:17 Duration
Lecture 7 Inside the JavaScript Engine - How the Code 00:15:59 Duration
Lecture 8 [DEEP DIVE] JavaScript Language vs Browser
Lecture 9 Primitive vs Reference Values
Lecture 10 About Proctor Testing
Lecture 11 Wrap Up 00:01:56 Duration
Lecture 12 Useful Resources & Links

Section 6 : More on Functions

Lecture 1 Module Introduction 00:01:32 Duration
Lecture 2 Recapping Functions Knowledge - What We Know 00:01:52 Duration
Lecture 3 Parameters vs Arguments
Lecture 4 Functions vs Methods 00:05:46 Duration
Lecture 5 Functions are Objects! 00:02:47 Duration
Lecture 6 Function Expressions Storing Functions in 00:05:12 Duration
Lecture 7 Function Expressions vs Function Declarations 00:02:47 Duration
Lecture 8 Anonymous Functions 00:05:54 Duration
Lecture 9 Working on the Project Adding User Choices to 00:07:44 Duration
Lecture 10 Implementing the Core Game Logic 00:07:21 Duration
Lecture 11 Introducing Arrow Functions 00:08:41 Duration
Lecture 12 Different Arrow Function Syntaxes
Lecture 13 Outputting Messages to the User 00:03:54 Duration
Lecture 14 Default Arguments in Functions 00:10:45 Duration
Lecture 15 Introducing Rest Parameters (Rest Operator) 00:08:57 Duration
Lecture 16 Creating Functions Inside of Functions 00:03:05 Duration
Lecture 17 Understanding Callback Functions 00:06:09 Duration
Lecture 18 Working with bind() 00:08:40 Duration
Lecture 19 Adding bind() to the Calculator Project 00:03:47 Duration
Lecture 20 call() and apply() 00:01:18 Duration
Lecture 21 Wrap Up 00:02:10 Duration
Lecture 22 Useful Resources & Links

Section 7 : Working with the DOM (Browser HTML Code) in JavaScript

Lecture 1 Module Introduction 00:01:49 Duration
Lecture 2 What's the DOM 00:06:00 Duration
Lecture 3 Document and Window Object
Lecture 4 Understanding the DOM and how it's created 00:07:07 Duration
Lecture 5 Nodes & Elements - Querying the DOM Overview 00:05:55 Duration
Lecture 6 Selecting Elements in the DOM 00:09:55 Duration
Lecture 7 Summary Node Query Methods
Lecture 8 Exploring and Changing DOM Properties 00:07:38 Duration
Lecture 9 Attributes vs Properties 00:08:58 Duration
Lecture 10 Selecting Multiple Elements & Summary 00:05:13 Duration
Lecture 11 Traversing the DOM - Overview 00:06:22 Duration
Lecture 12 Traversing Child Nodes 00:09:15 Duration
Lecture 13 Using parentNode & parentElement
Lecture 14 Selecting Sibling Elements 00:04:06 Duration
Lecture 15 DOM Traversal vs Query Methods 00:04:35 Duration
Lecture 16 Styling DOM Elements 00:12:19 Duration
Lecture 17 Creating Elements with JS - Overview 00:02:42 Duration
Lecture 18 Adding Elements via HTML in Code 00:07:43 Duration
Lecture 19 Adding Elements via createElement() 00:05:42 Duration
Lecture 20 Inserting DOM Elements 00:08:15 Duration
Lecture 21 Cloning DOM Nodes 00:01:45 Duration
Lecture 22 Live Node Lists vs Static Node Lists 00:04:56 Duration
Lecture 23 Removing Elements 00:01:56 Duration
Lecture 24 Insertion & Removal Method Summary 00:02:38 Duration
Lecture 25 Summary Insert, Replace, Remove
Lecture 26 Setting Up the Practice Project 00:02:16 Duration
Lecture 27 Selecting the Modal and Add Button 00:08:58 Duration
Lecture 28 Opening a Modal by Changing CSS Classes 00:05:01 Duration
Lecture 29 Controlling the Backdrop 00:08:04 Duration
Lecture 30 Fetching and Validating User Input 00:08:06 Duration
Lecture 31 Creating a Movie in JavaScript & Clearing the 00:04:01 Duration
Lecture 32 Rendering Movie Items on the Screen 00:08:24 Duration
Lecture 33 Deleting Movie Elements 00:09:12 Duration
Lecture 34 Showing & Hiding the Are you sure Dialog 00:07:08 Duration
Lecture 35 Starting with the Confirmation Logic 00:04:29 Duration
Lecture 36 Finishing the App 00:11:45 Duration
Lecture 37 Wrap Up 00:01:55 Duration
Lecture 38 Useful Resources & Links

Section 8 : More on Arrays & Iterables

Lecture 1 Module Introduction 00:01:08 Duration
Lecture 2 What are Iterables and Array-like Objects 00:02:12 Duration
Lecture 3 Creating Arrays 00:08:56 Duration
Lecture 4 Which Data Can You Store In Arrays 00:03:48 Duration
Lecture 5 push(), pop(), unshift(), shift() - Adding & 00:06:59 Duration
Lecture 6 The splice() Method 00:05:38 Duration
Lecture 7 Selecting Ranges & Creating Copies with slice 00:06:06 Duration
Lecture 8 Adding Arrays to Arrays with concat() 00:02:23 Duration
Lecture 9 Retrieving Indexes with indexOf() & lastIndex 00:03:48 Duration
Lecture 10 Finding Stuff find() and findIndex() 00:05:20 Duration
Lecture 11 Is it Included 00:01:20 Duration
Lecture 12 Alternative to for Loops The forEach() Method 00:04:25 Duration
Lecture 13 Transforming Data with map() 00:02:39 Duration
Lecture 14 sort()ing and reverse()ing 00:04:16 Duration
Lecture 15 Filtering Arrays with filter() 00:02:35 Duration
Lecture 16 Where Arrow Functions Shine! 00:01:31 Duration
Lecture 17 The Important reduce() Method 00:07:34 Duration
Lecture 18 Chaining Methods in JavaScript
Lecture 19 Arrays & Strings - split() and join() 00:04:22 Duration
Lecture 20 The Spread Operator (...) 00:10:31 Duration
Lecture 21 Understanding Array Destructuring 00:04:25 Duration
Lecture 22 Maps & Sets - Overview 00:04:17 Duration
Lecture 23 Working with Sets 00:07:21 Duration
Lecture 24 Working with Maps 00:09:31 Duration
Lecture 25 Maps vs Objects 00:03:41 Duration
Lecture 26 Understanding WeakSet 00:04:51 Duration
Lecture 27 Understanding WeakMap 00:02:51 Duration
Lecture 28 Wrap Up 00:01:26 Duration
Lecture 29 Useful Resources & Links

Section 9 : More on Objects

Lecture 1 Module Introduction 00:01:38 Duration
Lecture 2 What's an Object 00:05:54 Duration
Lecture 3 Objects & Primitive Values
Lecture 4 Objects - Recap 00:02:43 Duration
Lecture 5 Adding, Modifying & Deleting Properties 00:06:47 Duration
Lecture 6 Special Key Names & Square Bracket Property 00:08:37 Duration
Lecture 7 Property Types & Property Order 00:03:55 Duration
Lecture 8 Dynamic Property Access & Setting Properties 00:04:11 Duration
Lecture 9 Demo App & Shorthand Property Syntax 00:09:22 Duration
Lecture 10 Rendering Elements based on Objects 00:05:37 Duration
Lecture 11 for-in Loops & Outputting Dynamic Properties 00:05:24 Duration
Lecture 12 Adding the Filter Functionality 00:05:39 Duration
Lecture 13 Understanding Chaining (Property & Method Cha 00:01:51 Duration
Lecture 14 The Object Spread Operator (...) 00:05:54 Duration
Lecture 15 Understanding Object.assign() 00:02:08 Duration
Lecture 16 Object Destructuring 00:06:14 Duration
Lecture 17 Checking for Property Existance 00:02:43 Duration
Lecture 18 Introducing this 00:05:52 Duration
Lecture 19 The Method Shorthand Syntax 00:01:07 Duration
Lecture 20 The this Keyword And Its Strange Behavior 00:05:42 Duration
Lecture 21 call() and apply() 00:03:23 Duration
Lecture 22 What the Browser (Sometimes) Does to this 00:02:33 Duration
Lecture 23 this and Arrow Functions 00:10:36 Duration
Lecture 24 this - Summary
Lecture 25 Getters & Setters 00:07:06 Duration
Lecture 26 Wrap Up 00:01:34 Duration
Lecture 27 Useful Resources & Links

Section 10 : Classes & Object-oriented Programming (OOP)

Lecture 1 Module Introduction 00:01:55 Duration
Lecture 2 whats-oop 00:03:17 Duration
Lecture 3 Getting Started with OOP Code 00:12:10 Duration
Lecture 4 Defining & Using a First Class 00:07:17 Duration
Lecture 5 Working with Constructor Methods 00:04:51 Duration
Lecture 6 Fields vs Properties 00:02:19 Duration
Lecture 7 Using & Connecting Multiple Classes 00:09:07 Duration
Lecture 8 Binding Class Methods & Working with this 00:04:57 Duration
Lecture 9 Adding a Cart and Shop Class 00:04:37 Duration
Lecture 10 Communicating Can Be Challenging! 00:03:54 Duration
Lecture 11 Static Methods & Properties 00:07:51 Duration
Lecture 12 First Summary & Classes vs Object Literals 00:04:06 Duration
Lecture 13 Getters & Setters 00:05:43 Duration
Lecture 14 Introducing Inheritance 00:02:35 Duration
Lecture 15 Implementing Inheritance 00:11:51 Duration
Lecture 16 Using Inheritance Everywhere 00:06:52 Duration
Lecture 17 Overriding Methods and the super() Constructo 00:06:01 Duration
Lecture 18 super() Constructor Execution, Order & this 00:06:46 Duration
Lecture 19 Different Ways of Adding Methods 00:05:52 Duration
Lecture 20 Private Properties 00:07:24 Duration
Lecture 21 Pseudo-Private Properties
Lecture 22 The instanceof Operator 00:04:30 Duration
Lecture 23 Built-in Classes 00:01:09 Duration
Lecture 24 Understanding Object Descriptors 00:07:35 Duration
Lecture 25 Wrap Up 00:01:51 Duration
Lecture 26 Useful Resources & Links

Section 11 : Deep Dive Constructor Functions & Prototypes

Lecture 1 Module Introduction 00:01:34 Duration
Lecture 2 Introducing Constructor Functions 00:04:02 Duration
Lecture 3 Constructor Functions vs Classes & Understand 00:04:18 Duration
Lecture 4 Introducing Prototypes 00:16:47 Duration
Lecture 5 Prototypes - Summary
Lecture 6 Working with Prototypes 00:05:19 Duration
Lecture 7 The Prototype Chain and the Global Object 00:08:26 Duration
Lecture 8 Classes & Prototypes 00:05:24 Duration
Lecture 9 Methods in Classes & In Constructors 00:10:14 Duration
Lecture 10 Built-in Prototypes in JavaScript 00:02:12 Duration
Lecture 11 Setting & Getting Prototypes 00:10:58 Duration
Lecture 12 Wrap Up 00:02:49 Duration
Lecture 13 Useful Resources & Links

Section 12 : Practice OOP & Classes

Lecture 1 Module Introduction 00:01:38 Duration
Lecture 2 First Project Steps & Planning 00:04:46 Duration
Lecture 3 Creating Project Lists & Parsing Element Data
Lecture 4 Starting with the Switch Project Logic 00:09:59 Duration
Lecture 5 Passing Method References Around 00:07:03 Duration
Lecture 6 Moving DOM Elements 00:11:50 Duration
Lecture 7 Adding a Tooltip 00:08:58 Duration
Lecture 8 Adding Inheritance 00:06:14 Duration
Lecture 9 Wrap Up 00:00:57 Duration
Lecture 10 Useful Resources & Links

Section 13 : Back to the DOM & More Browser APIs

Lecture 1 Module Introduction 00:02:32 Duration
Lecture 2 Using dataset (data- Attributes) 00:06:52 Duration
Lecture 3 Getting Element Box Dimensions 00:05:54 Duration
Lecture 4 Working with Element Sizes & Positions 00:04:56 Duration
Lecture 5 The DOM & Prototypes 00:02:21 Duration
Lecture 6 Positioning the Tooltip 00:10:57 Duration
Lecture 7 Handling Scrolling 00:05:37 Duration
Lecture 8 Working with template Tags 00:05:14 Duration
Lecture 9 Loading Scripts Dynamically 00:07:35 Duration
Lecture 10 Setting Timers & Intervals 00:07:38 Duration
Lecture 11 The location and history Objects 00:03:17 Duration
Lecture 12 The navigator Object 00:04:50 Duration
Lecture 13 Working with Dates 00:03:17 Duration
Lecture 14 The Error Object & Constructor Function 00:03:22 Duration
Lecture 15 Wrap Up 00:00:43 Duration
Lecture 16 Useful Resources & Links

Section 14 : Working with Events

Lecture 1 Module Introduction 00:01:32 Duration
Lecture 2 Introduction to Events in JavaScript 00:06:18 Duration
Lecture 3 Different Ways of Listening to Events 00:06:59 Duration
Lecture 4 Removing Event Listeners 00:05:14 Duration
Lecture 5 The event Object 00:05:43 Duration
Lecture 6 Supported Event Types 00:08:01 Duration
Lecture 7 Example Basic Infinite Scrolling
Lecture 8 Working with preventDefault 00:05:15 Duration
Lecture 9 Understanding Capturing & Bubbling Phases 00:02:03 Duration
Lecture 10 Event Propagation & stopPropagation() 00:07:39 Duration
Lecture 11 Using Event Delegation 00:08:33 Duration
Lecture 12 Triggering DOM Elements Programmatically 00:03:41 Duration
Lecture 13 Event Handler Functions & this 00:02:29 Duration
Lecture 14 Drag & Drop - Theory 00:04:59 Duration
Lecture 15 Configuring Draggable Elements 00:06:24 Duration
Lecture 16 Marking the Drop Area 00:08:53 Duration
Lecture 17 Dropping & Moving Data + Elements 00:06:59 Duration
Lecture 18 Firefox Adjustments
Lecture 19 Wrap Up 00:01:15 Duration
Lecture 20 Useful Resources & Links

Section 15 : Advanced Function Concepts

Lecture 1 Module Introduction 00:00:57 Duration
Lecture 2 Pure Functions & Side-Effects 00:06:13 Duration
Lecture 3 Impure vs Pure Functions 00:02:00 Duration
Lecture 4 Factory Functions 00:05:42 Duration
Lecture 5 Closures 00:07:46 Duration
Lecture 6 Closures in Practice 00:07:01 Duration
Lecture 7 Closures & Memory Management 00:01:24 Duration
Lecture 8 About Certification
Lecture 9 Introducing Recursion 00:07:32 Duration
Lecture 10 Advanced Recursion 00:09:01 Duration
Lecture 11 Wrap Up 00:01:14 Duration
Lecture 12 Useful Resources & Links

Section 16 : More on Numbers & Strings

Lecture 1 Module Introduction 00:00:54 Duration
Lecture 2 How Numbers Work & Behave in JavaScript 00:07:47 Duration
Lecture 3 Floating Point (Im)Precision 00:11:04 Duration
Lecture 4 The BigInt Type 00:03:36 Duration
Lecture 5 The Global Number and Math Objects 00:02:47 Duration
Lecture 6 Example Generate Random Number Between Min 00:05:33 Duration
Lecture 7 Exploring String Methods 00:01:43 Duration
Lecture 8 Tagged Templates 00:10:29 Duration
Lecture 9 Introducing Regular Expressions (RegEx) 00:04:31 Duration
Lecture 10 More on Regular Expressions 00:07:25 Duration
Lecture 11 Wrap Up 00:01:20 Duration
Lecture 12 Useful Resources & Links

Section 17 : Async JavaScript Promises & Callbacks

Lecture 1 Module Introduction 00:01:12 Duration
Lecture 2 Understanding Synchronous Code Execution (Syn 00:02:51 Duration
Lecture 3 Understanding Asynchronous Code Execution (As 00:05:45 Duration
Lecture 4 Blocking Code & The Event Loop 00:10:30 Duration
Lecture 5 Sync + Async Code - The Execution Order 00:04:03 Duration
Lecture 6 Multiple Callbacks & setTimeout(0) 00:03:20 Duration
Lecture 7 Getting Started with Promises 00:08:25 Duration
Lecture 8 Chaining Multiple Promises 00:05:53 Duration
Lecture 9 Promise Error Handling 00:07:46 Duration
Lecture 10 Promise States & finally
Lecture 11 Async await 00:09:11 Duration
Lecture 12 Async await & Error Handling 00:03:07 Duration
Lecture 13 Async await vs Raw Promises 00:04:56 Duration
Lecture 14 Promise.all(), Promise.race() etc. 00:07:59 Duration
Lecture 15 Wrap Up 00:01:27 Duration
Lecture 16 Useful Resources & Links

Section 18 : Working with Http Requests

Lecture 1 Module Introduction 00:01:07 Duration
Lecture 2 What & Why 00:05:03 Duration
Lecture 3 How The Web Works
Lecture 4 More Background about Http 00:05:24 Duration
Lecture 5 Getting Started with Http 00:03:35 Duration
Lecture 6 Sending a GET Request 00:03:46 Duration
Lecture 7 JSON Data & Parsing Data 00:09:14 Duration
Lecture 8 JSON Data Deep Dive
Lecture 9 Promisifying Http Requests (with XMLHttpReque 00:03:49 Duration
Lecture 10 Sending Data with a POST Request 00:04:55 Duration
Lecture 11 Triggering Requests via the UI 00:03:13 Duration
Lecture 12 The Fetch Button Always Appends
Lecture 13 Sending a DELETE Request 00:04:57 Duration
Lecture 14 Handling Errors 00:05:03 Duration
Lecture 15 Using the fetch() API 00:07:11 Duration
Lecture 16 POSTing Data with the fetch() API 00:02:38 Duration
Lecture 17 Adding Request Headers 00:03:01 Duration
Lecture 18 fetch() & Error Handling 00:07:12 Duration
Lecture 19 XMLHttpRequest vs fetch() 00:01:42 Duration
Lecture 20 Working with FormData 00:06:58 Duration
Lecture 21 Wrap Up 00:01:18 Duration
Lecture 22 Useful Resources & Links

Section 19 : Working with JavaScript Libraries

Lecture 1 Module Introduction 00:00:59 Duration
Lecture 2 What & Why 00:02:55 Duration
Lecture 3 Adding Libraries (Example lodash) 00:09:10 Duration
Lecture 4 Example jQuery 00:02:30 Duration
Lecture 5 Discovering Libraries 00:03:26 Duration
Lecture 6 Axios Library & Http Requests 00:10:46 Duration
Lecture 7 Third-Party Library Considerations 00:04:55 Duration
Lecture 8 Wrap Up 00:00:59 Duration
Lecture 9 Useful Resources & Links

Section 20 : Modular JavaScript (Working with Modules)

Lecture 1 Module Introduction 00:00:56 Duration
Lecture 2 Splitting Code in a Sub-optimal Way 00:07:12 Duration
Lecture 3 A First Step Towards JavaScript Modules 00:03:25 Duration
Lecture 4 We Need a Development Server! 00:05:58 Duration
Lecture 5 First import export Work 00:03:41 Duration
Lecture 6 Switching All Files To Use Modules 00:04:26 Duration
Lecture 7 More Named Export Syntax Variations 00:06:12 Duration
Lecture 8 Working With Default Exports 00:03:36 Duration
Lecture 9 Dynamic Imports & Code Splitting 00:05:24 Duration
Lecture 10 When Does Module Code Execute 00:02:06 Duration
Lecture 11 Module Scope & globalThis 00:06:18 Duration
Lecture 12 Wrap Up 00:01:38 Duration
Lecture 13 Useful Resources & Links

Section 21 : JavaScript Tooling & Workflows

Lecture 1 Module Introduction 00:03:24 Duration
Lecture 2 Project Limitations & Why We Need Tools 00:08:12 Duration
Lecture 3 Workflow Overview 00:02:42 Duration
Lecture 4 Setting Up a npm Project 00:03:46 Duration
Lecture 5 Working with npm Packages 00:03:39 Duration
Lecture 6 Linting with ESLint 00:08:38 Duration
Lecture 7 Configuring ESLint
Lecture 8 Important Webpack Version
Lecture 9 Bundling with Webpack 00:15:14 Duration
Lecture 10 Bonus Multiple Entry Points
Lecture 11 Development Mode & Fixing Lazy Loading 00:04:00 Duration
Lecture 12 Using webpack-dev-server 00:03:15 Duration
Lecture 13 Generating Sourcemaps 00:03:05 Duration
Lecture 14 Building For Production 00:03:45 Duration
Lecture 15 Final Optimizations 00:06:35 Duration
Lecture 16 Using Third Party Packages with npm & Webpack 00:04:06 Duration
Lecture 17 Wrap Up 00:01:40 Duration
Lecture 18 Useful Resources & Links

Section 22 : Utilizing Browser Storage

Lecture 1 Module Introduction 00:01:06 Duration
Lecture 2 Browser Storage Options 00:07:22 Duration
Lecture 3 localStorage & sessionStorage 00:10:43 Duration
Lecture 4 Getting Started with Cookies 00:06:07 Duration
Lecture 5 Working with Cookies 00:08:10 Duration
Lecture 6 Getting Started with IndexedDB 00:08:55 Duration
Lecture 7 Working with IndexedDB 00:04:06 Duration
Lecture 8 Wrap Up 00:00:48 Duration
Lecture 9 Useful Resources & Links

Section 23 : JavaScript & Browser Support

Lecture 1 Module Introduction 00:01:29 Duration
Lecture 2 What Is Browser Support About 00:07:36 Duration
Lecture 3 Determining Browser Support For A JavaScript 00:08:20 Duration
Lecture 4 Determining Required Support 00:03:29 Duration
Lecture 5 Solution Feature Detection + Fallback Code 00:09:55 Duration
Lecture 6 Solution Using Polyfills 00:03:18 Duration
Lecture 7 Solution Transpiling Code 00:12:02 Duration
Lecture 8 Improvement Automatically Detect + Add 00:11:02 Duration
Lecture 9 What about Support Outside of Browsers 00:00:58 Duration
Lecture 10 Browser Support Outside of JavaScript Files 00:02:36 Duration
Lecture 11 Wrap Up 00:01:19 Duration
Lecture 12 Useful Resources & Links

Section 24 : Time to Practice Share My Place App

Lecture 1 Module Introduction 00:00:53 Duration
Lecture 2 Setting Up the Project 00:03:06 Duration
Lecture 3 Getting DOM Access 00:04:33 Duration
Lecture 4 Getting the User Location 00:06:27 Duration
Lecture 5 Adding Feedback (Showing a Modal) 00:11:16 Duration
Lecture 6 Hiding the Modal 00:02:38 Duration
Lecture 7 Rendering a Map with Google Maps 00:14:17 Duration
Lecture 8 Continuing without a Credit Card
Lecture 9 Finding an Address & Getting the Coordinates 00:08:23 Duration
Lecture 10 Converting User Input to Coordinates 00:03:35 Duration
Lecture 11 Creating a Share Place Link 00:08:31 Duration
Lecture 12 Copying the Link to the Clipboard 00:03:37 Duration
Lecture 13 Rendering the Shared Place Screen 00:06:23 Duration
Lecture 14 Useful Resources & Links

Section 25 : Working with JavaScript Frameworks

Lecture 1 Module Introduction 00:01:06 Duration
Lecture 2 What and Why 00:07:35 Duration
Lecture 3 The Idea Behind React.js 00:02:46 Duration
Lecture 4 Analysing a React Project 00:17:38 Duration
Lecture 5 Wrap Up 00:01:35 Duration
Lecture 6 Useful Resources & Links

Section 26 : Meta-Programming Symbols, Iterators, Generators, Reflect API

Lecture 1 Module Introduction 00:01:52 Duration
Lecture 2 Understanding Symbols 00:08:27 Duration
Lecture 3 Well-known Symbols 00:05:15 Duration
Lecture 4 Understanding Iterators 00:05:32 Duration
Lecture 5 Generators & Iterable Objects 00:11:03 Duration
Lecture 6 Generators Summary & Built-in Iterables Examp 00:03:22 Duration
Lecture 7 The Reflect API 00:07:11 Duration
Lecture 8 The Proxy API and a First Trap 00:09:04 Duration
Lecture 9 Working with Proxy Traps 00:02:57 Duration
Lecture 10 Wrap Up 00:01:38 Duration
Lecture 11 Useful Resources & Links

Section 27 : Node.js An Introduction

Lecture 1 Module Introduction 00:01:43 Duration
Lecture 2 JavaScript is a Hosted Language 00:02:22 Duration
Lecture 3 Installation & Basics 00:06:17 Duration
Lecture 4 Understanding Modules & File Access 00:04:39 Duration
Lecture 5 Working with Incoming Http Requests 00:05:46 Duration
Lecture 6 Sending Responses (HTML Data) 00:04:01 Duration
Lecture 7 Parsing Incoming Data 00:10:53 Duration
Lecture 8 INTRODUCTION TO BRAINMEASURES PROCTOR SYSTEM
Lecture 9 Express.js The Basics 00:06:34 Duration
Lecture 10 Extracting Data 00:04:24 Duration
Lecture 11 Rendering Server-side HTML with Templates & 00:06:52 Duration
Lecture 12 Enhancing Our Project 00:03:44 Duration
Lecture 13 Adding Basic REST Routes 00:12:09 Duration
Lecture 14 Understanding CORS (Cross Origin Resource Sha 00:05:13 Duration
Lecture 15 Sending the Location ID to the Frontend 00:02:16 Duration
Lecture 16 Adding the GET Location Route 00:07:16 Duration
Lecture 17 Introducing MongoDB (Database) 00:14:45 Duration
Lecture 18 NodeJS Error Handling
Lecture 19 Wrap Up 00:01:51 Duration
Lecture 20 Useful Resources & Links

Section 28 : Security

Lecture 1 Module Introduction 00:01:36 Duration
Lecture 2 Security Hole Overview & Exposing Data in you 00:06:46 Duration
Lecture 3 Cross-Site Scripting Attacks (XSS) 00:14:39 Duration
Lecture 4 Third-Party Libraries & XSS 00:05:18 Duration
Lecture 5 CSRF Attacks (Cross Site Request Forgery) 00:04:16 Duration
Lecture 6 CORS (Cross Origin Resource Sharing) 00:02:53 Duration
Lecture 7 Wrap Up 00:01:31 Duration
Lecture 8 Useful Resources & Links

Section 29 : Deploying JavaScript Code

Lecture 1 Module Introduction 00:01:11 Duration
Lecture 2 Deployment Steps 00:07:29 Duration
Lecture 3 Different Types of Websites
Lecture 4 Example Static Host Deployment (no Server-sid 00:09:44 Duration
Lecture 5 Injecting Script Imports Into HTML Automatica
Lecture 6 Example Dynamic Page Deployment (with Server 00:12:46 Duration
Lecture 7 Useful Resources & Links

Section 30 : Performance & Optimizations

Lecture 1 Module Introduction 00:01:49 Duration
Lecture 2 What is Performance Optimization About 00:06:17 Duration
Lecture 3 Optimization Potentials 00:06:49 Duration
Lecture 4 Measuring Performance 00:03:42 Duration
Lecture 5 Diving Into The Browser Devtools (for Perform 00:15:30 Duration
Lecture 6 Further Resources 00:02:14 Duration
Lecture 7 Preparing The Testing Setup 00:04:04 Duration
Lecture 8 Optimizing Startup Time & Code Usage Coverag 00:11:51 Duration
Lecture 9 Updating The DOM Correctly 00:09:56 Duration
Lecture 10 Updating Lists Correctly 00:08:11 Duration
Lecture 11 Optimizing The Small Things 00:03:58 Duration
Lecture 12 Micro-Optimizations (Think Twice!) 00:08:49 Duration
Lecture 13 Finding & Fixing Memory Leaks 00:09:44 Duration
Lecture 14 Server-side Performance Optimizations
Lecture 15 Wrap Up 00:03:26 Duration
Lecture 16 Useful Resources & Links

Section 31 : Introduction to Testing

Lecture 1 Module Introduction 00:00:50 Duration
Lecture 2 What Is Testing Why Does It Matter 00:07:10 Duration
Lecture 3 Testing Setup 00:04:10 Duration
Lecture 4 Writing & Running Unit Tests 00:11:15 Duration
Lecture 5 Writing & Running Integration Tests 00:06:04 Duration
Lecture 6 Writing & Running e2e Tests 00:10:16 Duration
Lecture 7 Dealing with Async Code 00:10:20 Duration
Lecture 8 Working with Mocks 00:07:51 Duration
Lecture 9 Useful Resources & Links

Section 32 : Bonus Programming Paradigms (Procedural vs Object Oriented v

Lecture 1 Module Introduction 00:00:48 Duration
Lecture 2 What are Programming Paradigms
Lecture 3 Procedural Programming in Practice 00:08:53 Duration
Lecture 4 Object Oriented Programming in Practice 00:13:20 Duration
Lecture 5 Functional Programming in Practice 00:13:53 Duration
Lecture 6 Wrap Up 00:03:27 Duration
Lecture 7 Useful Resources & Links

Section 33 : Bonus Data Structures & Algorithms Introduction

Lecture 1 Module Introduction 00:02:03 Duration
Lecture 2 What are Data Structures & Algorithms 00:04:23 Duration
Lecture 3 A First Example 00:10:23 Duration
Lecture 4 Solving the Same Problem Differently 00:07:26 Duration
Lecture 5 Performance & The Big O Notation 00:11:44 Duration
Lecture 6 More Time Complexities & Comparing Algorithms 00:03:36 Duration
Lecture 7 More on Big O 00:05:23 Duration
Lecture 8 More Examples 00:10:15 Duration
Lecture 9 Diving into Data Structures & Time Complexiti 00:12:07 Duration
Lecture 10 Where to Learn More & Wrap Up 00:03:23 Duration
Lecture 11 Useful Resources & Links

Section 34 : Bonus TypeScript Introduction

Lecture 1 Module Introduction 00:01:11 Duration
Lecture 2 What is TypeScript and Why would you use it 00:04:58 Duration
Lecture 3 Working with Types 00:10:06 Duration
Lecture 4 Core Types & Diving Deeper 00:17:26 Duration
Lecture 5 Object Types, Array Types & Function Types 00:09:22 Duration
Lecture 6 Advanced Types (Literal Types, Union Types, 00:09:20 Duration
Lecture 7 Classes & Interfaces 00:12:02 Duration
Lecture 8 Generic Types 00:05:03 Duration
Lecture 9 Configuring the TypeScript Compiler 00:05:12 Duration
Lecture 10 Useful Resources & Links

Section 35 : Bonus Web Components

Lecture 1 Module Introduction 00:02:02 Duration
Lecture 2 Web Components in Action 00:06:30 Duration
Lecture 3 What are Web Components 00:03:22 Duration
Lecture 4 Why Web Components 00:02:44 Duration
Lecture 5 Getting Started! 00:04:56 Duration
Lecture 6 Web Component Browser Support 00:02:44 Duration
Lecture 7 Our Development Setup 00:03:54 Duration
Lecture 8 A First Custom Element 00:08:18 Duration
Lecture 9 Interacting with the Surrounding DOM 00:05:04 Duration
Lecture 10 Understanding the Custom Element Lifecycle 00:02:51 Duration
Lecture 11 Using connectedCallback for DOM Access 00:02:05 Duration
Lecture 12 Listening to Events Inside the Component 00:09:13 Duration
Lecture 13 Using Attributes on Custom Elements 00:04:45 Duration
Lecture 14 Styling our Elements 00:04:08 Duration
Lecture 15 Working with the Shadow DOM 00:05:00 Duration
Lecture 16 Adding an HTML Template 00:05:41 Duration
Lecture 17 Using Slots 00:01:50 Duration
Lecture 18 Defining the Template in JavaScript 00:03:21 Duration
Lecture 19 Using Style Tags in the Shadow DOM 00:02:40 Duration
Lecture 20 Extending Built-in Elements 00:07:33 Duration
Lecture 21 The Next Steps 00:00:50 Duration
Lecture 22 Understanding Shadow DOM Projection 00:02:27 Duration
Lecture 23 Styling slot Content Outside of the Shadow DO 00:03:45 Duration
Lecture 24 Styling slot Content Inside of the Shadow DOM 00:03:10 Duration
Lecture 25 Styling the Host Component 00:04:43 Duration
Lecture 26 Conditional Host Styling 00:02:49 Duration
Lecture 27 Styling with the Host Content in Mind 00:02:28 Duration
Lecture 28 Smart Dynamic Styling with CSS Variables 00:06:21 Duration
Lecture 29 Cleaning Up the Overall Styling 00:03:22 Duration
Lecture 30 Observing Attribute Changes 00:06:18 Duration
Lecture 31 Adjusting the Component Behavior Upon Attribu 00:02:35 Duration
Lecture 32 Using disconnectedCallback 00:06:10 Duration
Lecture 33 Adding a render() Method 00:06:13 Duration
Lecture 34 Final Adjustment
Lecture 35 The Next Steps 00:00:52 Duration
Lecture 36 Creating the Basic Modal Component 00:06:33 Duration
Lecture 37 Adding the Modal Container 00:02:30 Duration
Lecture 38 Styling the Modal Elements 00:05:36 Duration
Lecture 39 Adding Some General App Logic 00:03:49 Duration
Lecture 40 Opening the Modal via CSS 00:05:23 Duration
Lecture 41 Public Methods & Properties 00:06:38 Duration
Lecture 42 Understanding Named Slots 00:05:45 Duration
Lecture 43 Listening to Slot Content Changes 00:05:11 Duration
Lecture 44 Closing the Modal 00:06:58 Duration
Lecture 45 Dispatching Custom Events 00:03:41 Duration
Lecture 46 Configuring Custom Events 00:04:53 Duration
Lecture 47 Finishing it up! 00:04:51 Duration
Lecture 48 Useful Resources & Links