Course Highlights
  • Apply first-class and higher order functions in your coding practices.
  • Explain the different scenarios that affect the value of this.
  • Identify the object to which this is bound.
  • Manipulate this binding to accomplish programing problems.
  • Use prototypes in your coding.
  • Understand and use IIFEs in your code.
  • Define closure and take advantage of it in your code.
  • Apply the namespace and module pattern to your coding projects.
  • Create JSON files.
  • Load and use JSON data in a project.
  • Manipulate properties on JavaScript objects.
  • Apply OOP principles to your JavaScript coding practices.
  • Make use of constructors and Object create for setting up objects and prototypes.
  • Understand and apply the true nature of JavaScript inheritance.
  • Explain functional programming concepts.
  • Apply functional programming techniques to your JavaScript projects.
Curriculum

4 Topics
Course Introduction
Where will You Go with JavaScript?
Tools You Will Need for this Course
A Word about the Exercise Files

1 Topic
Think Like a Programmer: Libraries and Frameworks

20 Topics
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

5 Topics
Abstraction and DRY Coding
Abstraction and DRY Coding: Exercise 1
OPTIONAL: Event Example
OPTIONAL: Event Example Explained Part 1
OPTIONAL: Event Example Explained Part 2

9 Topics
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
ES2020: Optional Chaining

6 Topics
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

2 Topics
Avoiding Global Variables
Using the Namespace Pattern

2 Topics
Closure: Exercise 4
Namespace Pattern Exercise 5

7 Topics
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

8 Topics
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 Fetch to Load a JSON File

4 Topics
Using ECMAScript Native Modules
Important Features of Native Modules
Applying Native Modules
Bundling Native Modules

1 Topic
Approaches to Programming

21 Topics
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?

4 Topics
Making Use of ES6 Classes
Using Classes for Creating Objects
Subclassing: Setting Up Inheritance Chains
Making Data Private

1 Topic
Starting a Project

7 Topics
Handling Errors Inroduction
Handling JavaScript Errors
Using the try catch Statement
Handling Asynchronous Errors
Using the Error Event for Handling Errors
Throwing Errors
Error Handling Strategies

1 Topic
Congratulations!

3 Topics
Introduction to Factory Functions
Overview of Factory Functions
Using a Prototype with Factory Functions

6 Topics
Introduction to JavaScript and AI Tools
Making Use of ChatGPT
Using ChatGPT to Learn JavaScript
Using ChatGPT to Generate Code
Using ChatGPT to Help with Large Projects
Exercise: Using ChatGPT with JavaScript

16 Topics
Functional Programming Introduction
Avoiding Side Effects and Using Pure Functions
Avoiding Shared State
Avoiding Mutable Data
Function Composition Part 1
Function Composition Part 2
Imperative Programming VS Declarative Programming
Functional Programming Example
Understanding Functional Programming Quiz
Functional Programming Techniques
Using Reduce Map and Filter
Using Reduce Map and Filter Exercise
Assignment / Exercise Follow Up
Getting Your Feet Wet with Currying
Understanding Recursion
Functional Libraries for JavaScript

1 Topic
BONUS Lecture! Discounts on Other Courses

  Write a Review

Advanced JavaScript Topics

Go to Paid Course