Introduction
  • Course Introduction
  • Where will You Go with JavaScript?
  • Tools You Will Need for this Course
  • A Word about the Exercise Files
Think Like a Programmer: Libraries and Frameworks
  • Think Like a Programmer: Libraries and Frameworks
Advanced Concepts for Objects and Functions
  • Advanced Concepts for Functions and Objects
  • REVIEW: Function Declarations and Function Expressions
  • Functions are Objects
  • First Class Functions
  • Invoking Functions
  • Creating JavaScript Objects
  • Understanding this
  • Examining this with Normal Function Invocation
  • Normal Function Invocation Using strict mode
  • Examining this with Method Invocation
  • Understanding Prototypes
  • Understanding the Prototype of Functions
  • Using call and apply Function Methods
  • Using the bind Function Method
  • Invoking Functions as Constructors: The Magic of new
  • Constructor Invocation and the Value of this
  • Higher Order Functions, Callbacks and the Problem with this
  • Arrow Functions
  • REVIEW: Invoking Function and this
  • Section Quiz
Think Like a Programmer: DRY Coding
  • Abstraction and DRY Coding
  • Abstraction and DRY Coding: Exercise 1
Working with Objects
  • Working with Objects Introduction
  • Detecting Properties on Objects
  • Changing Property Attributes
  • Exercise 2: Working with Objects
  • Making Objects Immutable
  • ES6 Object Features
  • Understanding Method Chaining
  • Section Quiz
The Power of Functions
  • The Power of Functions Introduction
  • Immediately Invoked Function Expressions (IIFEs)
  • Exercise 3: Immediately Invoked Function Expressions
  • Review of Scope
  • Understanding Closure
  • OPTIONAL: Closure Take 2
Think Like a Programmer: Avoiding Globals
  • Avoiding Global Variables
  • Using the Namespace Pattern
The Power of Functions Continued
  • Closure: Exercise 4
  • Namespace Pattern Exercise 5
Think Like a Programmer: The Module Pattern
  • The Module Pattern Part 1
  • Optional: Overview of Fill-In-Question Code
  • The Module Pattern: Part 2
  • The Module Pattern: Part 3
  • The Module Pattern: Part 4
  • Module Pattern Exercise 6
  • Module Pattern Exercise 7
Working with Data: JavaScript Objects and JSON
  • Introduction to Working with Data
  • JSON Basics
  • Creating a JSON File
  • Loading a JSON File Using XMLHttpRequest
  • Testing on a Server
  • Setting Up a Local Server Using Node
  • JSON Data Exercise 8
Using ES Native Modules
  • Using ECMAScript Native Modules
  • Important Features of Native Modules
  • Applying Native Modules
  • Bundling Native Modules
Think Like a Programmer: Approaches to Programming
  • Approaches to Programming
Object Oriented Programming in JavaScript
  • Introduction to Object Oriented Programming
  • OOP Theory
  • Review: Setting the Prototype
  • The Constructor Property
  • Project: Applying OOP Part 1
  • Project: Applying OOP Part 2
  • Project: Applying OOP Part 3
  • Project: Applying OOP Part 4
  • Project: Applying OOP Part 5
  • Project: Applying OOP Part 6
  • Project: Applying OOP Part 7
  • Project: Applying OOP Part 8
  • Project: Applying OOP Part 9
  • Project: Applying OOP Part 10 - Getters and Setters
  • Project: Applying OOP Part 11 - Wrap Up
  • Object Oriented Programming: Follow Up Topics
  • Enumerating Objects with the for in Loop
  • Private Data in Constructors
  • Creating Safe Constructors
  • Can I Modify the Built-in Prototypes?
  • What About ES6 Classes?
Think Like a Programmer: Starting a Project
  • Starting a Project