Types & Conditionals Quiz 
 
Module Intro: Variables & Strings 
 
Challenge: Variable Basics 
 
Better Code with Strict Mode 
 
Why Use let & const Over var 
 
How Const Improves Your Code 
 
Why Block Scoping Matters 
 
How Template Literals Improve Strings 
 
Challenge: Template Literals 
 
How Variables Should Be Named 
 
Module Intro: Types & Conditionals 
 
Conditionally Run JavaScript Code 
 
Challenge: Your First Conditional 
 
Types and How They Can Be Changed 
 
How to Shorten Conditionals with Ternaries 
 
Even Shorter Conditionals with Short-Circuiting 
 
Challenge: Short-Circuiting 
 
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 
 
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 
 
Build Flexible Collections with Arrays 
 
Challenge: Your First Array 
 
Check Element Existence in Arrays 
 
Challenge: .some and .every 
 
Perform Actions on All Elements 
 
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 
 
Use New Immutable Array Features 
 
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() 
 
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 
 
The Problem with Callbacks 
 
Fix Callback Hell with Promises 
 
Make Network Requests with fetch() 
 
Dead-Simple Promises with async-await 
 
Catch Errors with async-await 
 
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 
 
Intro: Essential Concepts 
 
Share App Code with Modules 
 
Know What 'this' is at Any Time 
 
Understand State and State Management 
 
How Reducers Help Manage State 
 
Avoid Imperative Write Declarative Code 
 
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