JavaScript 201
Course Summary
Learn modern syntax and advanced design patterns for building maintainable websites. You'll start leaning heavily into the world of single-page-applications where JavaScript takes over almost everything.
8 Sections · 276 Pages · By Ian Currie
-
Level
Beginner to Intermediate
-
Duration
200 Hours. Or, ~3 months of dedicated learning @ 15-20 hours per week
-
What's included
174 lessons. 78 videos. 16 quizzes. Many code samples. 4 projects. 1 capstone.
-
Certificate
JavaScript 201 Certificate
Unlock this course
$12/month Core Membership
7-day free trial
Unlock all courses
$29/month Pro Membership
7-day free trial
This course is part of the following career track:
-
1) Getting Started
-
Introduction
-
Welcome!3 min
-
Course Logistics3 min
-
Video: Course Logistics2 min
-
What Are Module Projects?4 min
-
JavaScript 201 Knowledge Check3 min
-
Video: Course Prerequisites5 min
-
Get Set Up for JavaScript 201
-
Essential Set Up for JavaScript 2013 min
-
Video: How to Set Up Your Machine5 min
-
How to Set Up Your Folders5 min
-
Download JS 201 Lab Exercises4 min
-
How to Interact With Labs and Assignments5 min
-
The Git Flow
-
Git Workflow for JavaScript 20117 min
-
Video: What Is Git flow15 min
-
-
2) Dynamically Generated Site
-
Module Project Description3 min
-
What Is Wireframing?4 min
-
Boilerplate for Your Module Project3 min
-
Video: How to Write Boilerplate4 min
-
Lab: Build Some Boilerplate3 min
-
Quiz: Introduction
-
Libraries
-
What Are Javascript Libraries7 min
-
How to Create a JS Library6 min
-
How to Incorporate External CSS - Simple.css3 min
-
Video: How to Create a JS Library4 min
-
Lab: Create a JS Library3 min
-
Building Variables
-
Project: Start to Code5 min
-
JavaScript: Prefer Const Over Let13 min
-
Video: JavaScript Const vs Let9 min
-
What Does Hoisting Mean in JavaScript8 min
-
Video: What Does Hoisting Mean in JavaScript5 min
-
Project Video: Start to Code2 min
-
Lab: Building Variables3 min
-
Quiz: Building Variables
-
Building Sections
-
Refresher: JavaScript Arrow Functions3 min
-
Refresher: The JavaScript foreach Method3 min
-
Video: Arrow Functions and Array Methods7 min
-
Project: Build Out Sections4 min
-
Project: Write a Function to Create the Header3 min
-
Working With and Iterating Over Objects in JavaScript8 min
-
Video: How to Manipulate Objects - Useful JS Object Methods8 min
-
Project: Create More Sections4 min
-
Video: Project - Build Sections2 min
-
Lab: Building By Iterating3 min
-
Quiz: Building Sections
-
Contact Section
-
Project: New File, New Site3 min
-
Project: Set Up Contact Section4 min
-
Video: Integrate Sections in the Site3 min
-
Forms and Events
-
Introduction to the HTML form for JavaScript Developers25 min
-
Project: Set Up the Form Function3 min
-
The JavaScript
.preventDefault()
Event Method4 min -
How to Create and Trigger Input Validation Using JavaScript match4 min
-
Video: How to Handle the Submit Event5 min
-
Video: How to Create and Trigger Input Validation Using JavaScript match8 min
-
How to Access Form Input Values Using JavaScript4 min
-
Video: How to Access Input Values Using JavaScript DOM Methods3 min
-
JavaScript For Loop Variations - for...in and for...of Loop3 min
-
Video: For Loop Variations: for...in and for...of Loop6 min
-
Introduction to JavaScript Iteration Protocols14 min
-
Video: How to Create a JavaScript Generator6 min
-
JavaScript Accessing Form Values from FormData10 min
-
Video: How to Access Form Values With the JavaScript FormData Object7 min
-
Lab: Forms and Events3 min
-
Quiz: Forms and Events
-
Implementing the Form
-
Project: The JSON Structure for the Form Section3 min
-
Project: Create a JavaScript Function to Build a Form3 min
-
Project: Create JavaScript Form Elements5 min
-
Project: How to Add Form Validation9 min
-
Project: Submit Your Form Using JavaScript5 min
-
Project Video Demo: Form Building3 min
-
Wrapping Up the Module Project
-
Recap: Dynamically Created Websites3 min
-
Project: How to Make it a Portfolio Project3 min
-
Assignments
-
Lab: Dynamically Generated Site3 min
-
Feedback: Dynamically Generated Site
-
-
3) Connect Four
-
Connect 4 Project Introduction3 min
-
Project: Boilerplate for Connect 43 min
-
Project Design: Requirements and Architecture8 min
-
Project: Start to Implement the Architectural Layout3 min
-
Video: Boilerplate Connect 4 Game1 min
-
Lab: Architecture Thoughts3 min
-
Basic Application State
-
Project: How to Create a Board Using a JS 2D Array10 min
-
Video: Array Pass By Reference6 min
-
Understanding Programming Paradigms in JavaScript9 min
-
Functional Programming and Immutability in JavaScript8 min
-
JavaScript Filter Array Method8 min
-
Video: JS Array Method - Filter4 min
-
JavaScript Map Array Method8 min
-
Video: JS Array Method - Map4 min
-
JavaScript Array Searches: Using
find
,findIndex
,includes
, andindexOf
5 min -
Video: JS Array Searching Methods5 min
-
Understanding JavaScript
.reduce()
Method for Array Manipulation11 min -
Video: JS Array Method - Reduce7 min
-
Video: How to Use JavaScript Method Chaining4 min
-
Project: Start Structuring the Game3 min
-
Project: Start Building the User Interface5 min
-
Video: Create the Board for Your Game2 min
-
Lab: Basic State3 min
-
Quiz: Basic State
-
Making the Board Come Alive
-
Video: Reviewing JavaScript Events7 min
-
Project: Register Click Events on the Board7 min
-
Project: Exploring Event Delegation4 min
-
Project: How to Alternate Player Turns7 min
-
Project: How to Update the Game Board4 min
-
Project: How to Update the Board With a JavaScript Click Event6 min
-
Alternatives for Removing DOM Elements : remove() and replaceChildren()3 min
-
Project: Add Images to Your App4 min
-
Video: Add Interactivity to Your Game2 min
-
Lab: Make the Board Come Alive3 min
-
Quiz: Interactivity
-
Checking Who Won
-
Project: Check Who Won Challenge3 min
-
Project: Check Who Won With JavaScript Iterations4 min
-
Can you Break Out of
.forEach()
?5 min -
Understanding Destructuring Assignment in JavaScript5 min
-
Video: Understanding Destructuring Assignment in JavaScript5 min
-
Understanding JavaScript's Spread and Rest Syntax9 min
-
Video: Understanding JavaScript's Spread and Rest Syntax8 min
-
Project: Implement the Solution - Check Who Won With Iteration4 min
-
Checking Connect 46 min
-
Project: Iterating Over Transformations10 min
-
Video: Checking the Winner3 min
-
Lab: Checking Who Won3 min
-
Quiz: Loops and Destructuring Assignment
-
Wrapping Up the Module Project
-
How to Deep Copy an Array in JavaScript9 min
-
JSDoc for JavaScript Comments4 min
-
Chapter Recap3 min
-
Project: Connect 4, Next Steps3 min
-
Assignments
-
Lab: Building a Connect 4 Game3 min
-
Feedback for Connect 4 Module
-
-
4) Dashboard
-
Dashboard Project: Introduction4 min
-
Project: From IP Address to Location Using APIs7 min
-
Project: Set Up Your Boilerplate7 min
-
Lab: Starting Out3 min
-
Video: Boilerplate For Dashboard1 min
-
Requests and Promises
-
Chapter Introduction - JavaScript Promises3 min
-
Review: Asynchronicity
-
Review: XMLHttpRequests
-
Review: Promises
-
Video: Review JavaScript Promises5 min
-
Video: Reviewing
.then()
and.catch()
4 min -
Review: The Fetch API6 min
-
Video: Review Fetch API9 min
-
Using the Fetch API's Response Object6 min
-
Video: Exploring
fetch()
for the Dashboard Project2 min -
Make a POST Request with JavaScript
fetch()
5 min -
Video: How to Make a POST Request9 min
-
How to Handle Multiple Fetch Requests With JavaScript's Promise.all5 min
-
Video: How to Handle Multiple Fetch Requests With JavaScript's Promise.all8 min
-
Lab: Requests and Promises3 min
-
Quiz: Requests and Promises
-
Intro to Authentication and Security on the Front End
-
Project: Add Fetch Requests to Your Dashboard5 min
-
Project: Plan the Next Stages3 min
-
Project: Make Sure to Read the API Documentation3 min
-
OpenWeahterMap API Authenticated Queries4 min
-
Video: OpenWeahterMap API Authenticated Queries10 min
-
API Authentication in Client-Side JavaScript: How to Safeguard API Keys8 min
-
Some JavaScript Restrictions in the Browser8 min
-
Video: Some JavaScript Restrictions in the Browser6 min
-
Lab: Authentication and Security3 min
-
Quiz: Authentication and Security
-
Chaining the Dashboard Together
-
Chapter Introduction: Chaining the Dashboard Together3 min
-
Project: Make a Request to the REST Countries API3 min
-
Project: How to Connect IP to Country4 min
-
Project: How to Build an API Request to Fetch Weather and ISS Data3 min
-
Project: Filter the Data from the API Responses7 min
-
Project: Chain All Your Promises Together3 min
-
Project: Process Data Using Utility Functions6 min
-
Project: Build the Basic HTML Structure3 min
-
Project: Build the Welcome and Country Sections6 min
-
Project: Build the Weather and ISS Sections5 min
-
Project: Chain the Data and DOM Building Together3 min
-
Project: Add CSS to the Dashboard3 min
-
Video: Project Overview After Chaining3 min
-
Colorizing the Dashboard
-
Project: Colorizing the Dashboard Introduction3 min
-
Review: The JavaScript Date Object and Epoch Time3 min
-
Video: Reviewing the JavaScript Date Object and Epoch Time7 min
-
Video: Review Set and Get Methods for the JavaScript Date Object5 min
-
Introduction to Time Zones in JavaScript7 min
-
Video: Introduction to Time Zones in JavaScript4 min
-
Formatting Dates and Times in JavaScript Using
Intl
8 min -
Video: Formatting Dates and Times in JavaScript Using Intl8 min
-
Project: Design the Time of Day Logic3 min
-
Project: Prepare the Time of Day Logic3 min
-
Project: Start Implementing Time of Day Logic5 min
-
Project: Finish Implementing Time of Day Logic6 min
-
Project: Colorize the Page3 min
-
Video: Colorize the Page4 min
-
Lab: Dashboard Colorized3 min
-
Quiz: Dashboard Colorized
-
Async Functions and JS Internals
-
Async Functions and JavaScript Internals Chapter Introduction3 min
-
Review: Async Functions
-
Video: Review JavaScript Async Functions6 min
-
Video: The JavaScript Async Function Wraps Everything in a Promise2 min
-
How to Create a JavaScript Sleep Function10 min
-
Video: How to Create a JavaScript Sleep Function6 min
-
Basics of the JavaScript Runtime Environment in the Browser20 min
-
Video: JavaScript Runtime Environment in the Browser6 min
-
Review: Examples of Asynchronous Processes4 min
-
When to Use JavaScript Async Await, Callbacks or Promises3 min
-
Project: Reviewing the Project and Refactoring5 min
-
Project: Refactor Promises to Async Functions4 min
-
Lab: Async Functions and JS Internals3 min
-
Quiz: Async Functions and JS Internals
-
Assignments
-
Dashboard Module Recap3 min
-
Lab: End of Dashboard Module Labs3 min
-
-
5) Canvas
-
Introduction to the Canvas Module7 min
-
HTML Canvas
-
What Is the JavaScript Canvas API?4 min
-
Project: Set Up the Canvas4 min
-
Video: Set Up the Canvas9 min
-
Project: The JavaScript Canvas API Coordinate System7 min
-
Project: How to Draw a Rectangle on a JavaScript Canvas9 min
-
Video: How to Draw a Rectangle on a JavaScript Canvas10 min
-
Video: Drawing Rectangles in the Module Project2 min
-
Project: Creative Rectangle Drawings4 min
-
Video: Explore Canvas Drawing (Project)3 min
-
Drawing Lines on a Canvas with JavaScript5 min
-
Video: Drawing Lines on a Canvas with JavaScript5 min
-
Draw a Triangle on a Canvas with JavaScript4 min
-
Video: Draw a Triangle on a Canvas with JavaScript5 min
-
Default Parameters in JavaScript Functions15 min
-
Project: Draw Triangles With Default Parameters4 min
-
Video: JavaScript Default Parameters4 min
-
Video: Creative Drawing With Triangles12 min
-
Video: Overview of the Canvas Project So Far3 min
-
How to Draw an Arc and a Circle on a Canvas with JavaScript7 min
-
Video: How to Draw an Arc and a Circle on a Canvas with JavaScript5 min
-
Video: Incorporating Arcs Into the Canvas Project2 min
-
Quiz: HTML Canvas
-
Classes
-
Introduction to JavaScript Classes22 min
-
Video: Basic Class Syntax5 min
-
Video: How to Create a JavaScript Class Method3 min
-
Video: Checking Instances of a Class5 min
-
How to Create a Basic JavaScript Linked List6 min
-
Video: Understanding What Classes Are5 min
-
Video: Understanding JavaScript Class Inheritance and the Super Keyword8 min
-
Understand the Different Behaviors of the JavaScript
this
Keyword3 min -
Video: Understand the Different Behaviors of the JavaScript
this
Keyword4 min -
Lab: Classes3 min
-
Quiz: Classes
-
Making a Draw and Point Class
-
Project: Preparing to Refactor With ES6 Modules and Classes3 min
-
Introduction to JavaScript ES Modules25 min
-
Project: Using ES Modules in the Canvas Project8 min
-
Video: Using ES Modules in the Canvas Project9 min
-
Project: Create a Drawing JavaScript Library With ES Modules10 min
-
Project: Use Your New Drawing Library3 min
-
Project: Include the Point Class8 min
-
Video: Using ES Modules in the Canvas Project3 min
-
Video: Incorporating the Draw Class in the Canvas Project3 min
-
Video: Incorporating the Point Class in the Canvas Project2 min
-
Quiz: Making a Draw and Point Class
-
Drawing and Animating
-
Project: Make a Bouncing Ball Animation on Canvas7 min
-
Project: Enhance Your Animation With
requestAnimationFrame()
5 min -
Project: Canvas Animation - Implement Collisions3 min
-
Project: Bouncing Ball Animation With Classes7 min
-
Project: Create Loads of Bouncing Balls10 min
-
Labs: Drawing and Animating3 min
-
Video: Coding Collisions in the Canvas Project3 min
-
Video: Many Bouncing Balls in the Canvas Project4 min
-
Quiz: Drawing and Animating
-
Recursion
-
Introduction to Recursion with JavaScript12 min
-
Video: Visualizing Recursion9 min
-
Lab: Recursion3 min
-
Quiz: Recursion
-
Drawing with Recursion
-
Project: Square Recursive Tunnel3 min
-
Project: Square Fractal4 min
-
Project: Line Method and Trigonometry3 min
-
Project: Recursive Tree4 min
-
Video: Drawing With Recursion5 min
-
Alternative Connect 4 Algorithm
-
Project: Connecting Four Recursive Check5 min
-
Video: Solving Connect Four With Recursion4 min
-
Wrapping Up
-
Recap: Canvas Module3 min
-
Lab: Canvas End of Module3 min
-
-
6) Capstone Project
-
7) Next Steps & Certificate Request