This course will teach you advanced JavaScript from the ground up. It features a systematic walk-through of the most important concepts of the language, and teaches you to build a Google Keep clone and a Hacker News clone in vanilla JavaScript.
Overview
COURSE DIFFICULTY
Skills Learned
After completing this online training course, students will be able to:
Variables / Strings
Conditionals
Functions
Partial application
Currying
Objects
Set
Arrays
Classes
Constructor functions
Control flow
DOM
Async JavaScript
Immutability
Closures
this
Loops
state
Side effects
High-order functions
Cutting-edge JavaScript
01. Getting Started
- Welcome to the Course!
- Start Using JavaScript
02. Variables & Strings
- Module Intro: Variables & Strings
- Variable Basics with Var
- Challenge: Variable Basics
- Better Code with Strict Mode
- Why Use Let & Const Over Var
- Challenge: Const & Let
- How Const Improves Your Code
- Why Block Scoping Matters
- How Template Literals Improve Strings
- Challenge: Template Literals
- How Variables Should Be Named
03. Types & Conditionals
- Module Intro: Types & Conditionals
- Conditionally Run JavaScript Code
- Challenge: Your First Conditional
- Types and How They Can Be Changed
- Challenge: Types
- How to Shorten Conditionals with Ternaries
- Challenge: Ternaries
- Even Shorter Conditionals with Short-Circuiting
- Challenge: Short-Circuiting
04. Functions
- Module Intro: Functions
- Why We Need Functions
- Challenge: Your First Function
- What is a Closure and Why it Matters
- Challenge: Count Downwards Using Closure
- Better Functions with Default Parameters
- Shorter Functions with Arrow Functions
- Challenge: Arrow Functions
- Partial Application for Single-Responsibility Functions
- How Functions Should Be Named
05. Objects & Maps
- Module Intro: Objects & Maps
- Use Objects for Managing Key-Value Pairs
- Challenge: Your First Object
- Understand Primitive vs Object Types
- Get and Modify Object Data
- Easy Property Access with Destructuring
- Challenge: Object Destructuring
- Merge Objects with Object Spread
- How Maps Can Do What Objects Can’t
- Challenge: Your First Map
- Improve Methods with Arrow Functions
06. Arrays & Sets
- Module Intro: Arrays
- Build Flexible Collections with Arrays
- Challenge: Your First Array
- Check Element Existence in Arrays
- Challenge: .Some and .Every
- Perform Actions on All Elements
- Get Subsets of Arrays
- Transform Arrays with .Reduce()
- Challenge: Transform Arrays with .Reduce()
- Understand the Power of .Reduce()
- Avoid Mutations with Array Spread
- Mold Arrays with the Spread Operator
- More Flexible Arrays with Destructuring
- Challenge: Array Destructuring
- Turn Objects into Flexible Arrays
- Get Unique Sets of Data
- Use New, Immutable Array Features
07. Classes
- Module Intro: Classes
- What Are Constructor Functions?
- Challenge: Your First Constructor Function
- Understand the Prototype Chain
- Easy Prototypal Inheritance with Classes
- Challenge: Your First Class
- Share Class Features with Extends
- How To Get, Set and Simplify Classes
- Fix Context Problems with .Bind()
08. DOM
- Module Intro: DOM
- What is the DOM?
- Get Single and Multiple Elements
- Creating and Modifying HTML Elements
- Challenge: Creating and Modifying HTML Elements
- Dynamically Add CSS Styles
- Understand and Work with Events
- Challenge: Events
09. Async JavaScript
- Module Intro: Async JavaScript
- The Problem with Callbacks
- Fix Callback Hell with Promises
- Make Network Requests with Fetch()
- Challenge: Fetch API
- Dead-Simple Promises with Async-Await
- Catch Errors with Async-Await
- Challenge: Async-Await
10. Google Keep Clone
- Module Intro: Google Keep Clone
- Google Keep – Project Setup
- Google Keep – Expanding and Closing Notes
- Google Keep – Storing Notes in the App
- Google Keep – Displaying Notes in the App
- Google Keep – Improving Functionality
- Google Keep – Editing Notes
- Google Keep – Changing Note Color
- Google Keep – Deleting Notes
- Google Keep – Storing Notes in the Browser
11. Essential Concepts
- Module Intro: Essential Concepts
- Share App Code with Modules
- Challenge: Modules
- Know What ‘This’ Is at Any Time
- Understand State and State Management
- How Reducers Help Manage State
- Avoid Imperative, Write Declarative Code
12. Hacker News Clone
- Module Intro: Hacker News Clone
- Hacker News – Creating HTML and CSS
- Hacker News – Adding Pages
- Hacker News – Requesting Data from API Endpoint
- Hacker News – Formatting Stories
- Hacker News – Creating Separate Pages for Stories
- Hacker News – Formatting Comments
- Hacker News – Building a Store
- Hacker News – Toggling Stories in and out of Favorites
- Hacker News – Building the Favorites Page
SKILLS LEARNED
Skills Learned
After completing this online training course, students will be able to:
Variables / Strings
Conditionals
Functions
Partial application
Currying
Objects
Set
Arrays
Classes
Constructor functions
Control flow
DOM
Async JavaScript
Immutability
Closures
this
Loops
state
Side effects
High-order functions
Cutting-edge JavaScript
COURSE OUTLINE
01. Getting Started
- Welcome to the Course!
- Start Using JavaScript
02. Variables & Strings
- Module Intro: Variables & Strings
- Variable Basics with Var
- Challenge: Variable Basics
- Better Code with Strict Mode
- Why Use Let & Const Over Var
- Challenge: Const & Let
- How Const Improves Your Code
- Why Block Scoping Matters
- How Template Literals Improve Strings
- Challenge: Template Literals
- How Variables Should Be Named
03. Types & Conditionals
- Module Intro: Types & Conditionals
- Conditionally Run JavaScript Code
- Challenge: Your First Conditional
- Types and How They Can Be Changed
- Challenge: Types
- How to Shorten Conditionals with Ternaries
- Challenge: Ternaries
- Even Shorter Conditionals with Short-Circuiting
- Challenge: Short-Circuiting
04. Functions
- Module Intro: Functions
- Why We Need Functions
- Challenge: Your First Function
- What is a Closure and Why it Matters
- Challenge: Count Downwards Using Closure
- Better Functions with Default Parameters
- Shorter Functions with Arrow Functions
- Challenge: Arrow Functions
- Partial Application for Single-Responsibility Functions
- How Functions Should Be Named
05. Objects & Maps
- Module Intro: Objects & Maps
- Use Objects for Managing Key-Value Pairs
- Challenge: Your First Object
- Understand Primitive vs Object Types
- Get and Modify Object Data
- Easy Property Access with Destructuring
- Challenge: Object Destructuring
- Merge Objects with Object Spread
- How Maps Can Do What Objects Can’t
- Challenge: Your First Map
- Improve Methods with Arrow Functions
06. Arrays & Sets
- Module Intro: Arrays
- Build Flexible Collections with Arrays
- Challenge: Your First Array
- Check Element Existence in Arrays
- Challenge: .Some and .Every
- Perform Actions on All Elements
- Get Subsets of Arrays
- Transform Arrays with .Reduce()
- Challenge: Transform Arrays with .Reduce()
- Understand the Power of .Reduce()
- Avoid Mutations with Array Spread
- Mold Arrays with the Spread Operator
- More Flexible Arrays with Destructuring
- Challenge: Array Destructuring
- Turn Objects into Flexible Arrays
- Get Unique Sets of Data
- Use New, Immutable Array Features
07. Classes
- Module Intro: Classes
- What Are Constructor Functions?
- Challenge: Your First Constructor Function
- Understand the Prototype Chain
- Easy Prototypal Inheritance with Classes
- Challenge: Your First Class
- Share Class Features with Extends
- How To Get, Set and Simplify Classes
- Fix Context Problems with .Bind()
08. DOM
- Module Intro: DOM
- What is the DOM?
- Get Single and Multiple Elements
- Creating and Modifying HTML Elements
- Challenge: Creating and Modifying HTML Elements
- Dynamically Add CSS Styles
- Understand and Work with Events
- Challenge: Events
09. Async JavaScript
- Module Intro: Async JavaScript
- The Problem with Callbacks
- Fix Callback Hell with Promises
- Make Network Requests with Fetch()
- Challenge: Fetch API
- Dead-Simple Promises with Async-Await
- Catch Errors with Async-Await
- Challenge: Async-Await
10. Google Keep Clone
- Module Intro: Google Keep Clone
- Google Keep – Project Setup
- Google Keep – Expanding and Closing Notes
- Google Keep – Storing Notes in the App
- Google Keep – Displaying Notes in the App
- Google Keep – Improving Functionality
- Google Keep – Editing Notes
- Google Keep – Changing Note Color
- Google Keep – Deleting Notes
- Google Keep – Storing Notes in the Browser
11. Essential Concepts
- Module Intro: Essential Concepts
- Share App Code with Modules
- Challenge: Modules
- Know What ‘This’ Is at Any Time
- Understand State and State Management
- How Reducers Help Manage State
- Avoid Imperative, Write Declarative Code
12. Hacker News Clone
- Module Intro: Hacker News Clone
- Hacker News – Creating HTML and CSS
- Hacker News – Adding Pages
- Hacker News – Requesting Data from API Endpoint
- Hacker News – Formatting Stories
- Hacker News – Creating Separate Pages for Stories
- Hacker News – Formatting Comments
- Hacker News – Building a Store
- Hacker News – Toggling Stories in and out of Favorites
- Hacker News – Building the Favorites Page