Course Introduction
  • Welcome to the Course!
  • READ BEFORE YOU START!
  • Setting up Our Tools
JavaScript Language Basics
  • Section Intro
  • Download the Code
  • Let's start coding!
  • A Brief Introduction to JavaScript
  • Variables and Data Types
  • Variable Mutation and Type Coercion
  • Basic Operators
  • Operator Precedence
  • Coding Challenge 1
  • Coding Challenge 1: Solution
  • If / else Statements
  • Boolean Logic
  • The Ternary Operator and Switch Statements
  • Truthy and Falsy Values and Equality Operators
  • Coding Challenge 2
  • Coding Challenge 2: Solution
  • Functions
  • Function Statements and Expressions
  • Arrays
  • Coding Challenge 3
  • Coding Challenge 3: Solution
  • Objects and Properties
  • Objects and Methods
  • Coding Challenge 4
  • Coding Challenge 4: Solution
  • Loops and Iteration
  • Coding Challenge 5
  • Coding Challenge 5: Solution, Part 1
  • Coding Challenge 5: Solution, Part 2
  • JavaScript Versions: ES5, ES6 / ES2015 and ES6+
How JavaScript Works Behind the Scenes
  • Section Intro
  • Download the Code
  • How Our Code Is Executed: JavaScript Parsers and Engines
  • Execution Contexts and the Execution Stack
  • Execution Contexts in Detail: Creation and Execution Phases and Hoisting
  • Hoisting in Practice
  • Scoping and the Scope Chain
  • The 'this' Keyword
  • The 'this' Keyword in Practice
JavaScript in the Browser: DOM Manipulation and Events
  • Section Intro
  • Download the Code
  • The DOM and DOM Manipulation
  • 5-Minute HTML and CSS Crash Course
  • Project Setup and Details
  • First DOM Access and Manipulation
  • Events and Event Handling: Rolling the Dice
  • Updating Scores and Changing the Active Player
  • Implementing Our 'Hold' Function and the DRY Principle
  • Creating a Game Initialization Function
  • Finishing Touches: State Variables
  • Coding Challenge 6
  • Coding Challenge 6: Solution, Part 1
  • Coding Challenge 6: Solution, Part 2
  • Coding Challenge 6: Solution, Part 3
Advanced JavaScript: Objects and Functions
  • Section Intro
  • Download the Code
  • Everything Is an Object: Inheritance and the Prototype Chain
  • Creating Objects: Function Constructors
  • The Prototype Chain in the Console
  • Creating Objects: Object.create
  • Primitives vs. Objects
  • First Class Functions: Passing Functions as Arguments
  • First Class Functions: Functions Returning Functions
  • Immediately Invoked Function Expressions (IIFE)
  • Closures
  • Bind, Call and Apply
  • Coding Challenge 7
  • Coding Challenge 7: Solution, Part 1
  • Coding Challenge 7: Solution, Part 2
Putting It All Together: The Budget App Project
  • Section Intro
  • Download the Code
  • Project Setup and Details
  • Project Planning and Architecture: Step 1
  • Implementing the Module Pattern
  • Setting up the First Event Listeners
  • Reading Input Data
  • Creating an Initialization Function
  • Creating Income and Expense Function Constructors
  • Adding a New Item to Our Budget Controller
  • Adding a New Item to the UI
  • Clearing Our Input Fields
  • Updating the Budget: Controller
  • Updating the Budget: Budget Controller
  • Updating the Budget: UI Controller
  • Project Planning and Architecture: Step 2
  • Event Delegation
  • Setting up the Delete Event Listener Using Event Delegation
  • Deleting an Item from Our Budget Controller
  • Deleting an Item from the UI
  • Project Planning and Architecture: Step 3
  • Updating the Percentages: Controller