Class Central is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

Scrimba

JavaScript Deep Dive

via Scrimba

Overview

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.
  • 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
  • And much more!

Syllabus

  • Getting started
    • 1. Welcome to the course!
    • 2. Start Using JavaScript
  • Variables & Strings
    • 1. Module Intro: Variables & Strings
    • 2. Variable Basics with var
    • 3. Challenge: Variable Basics
    • 4. Better Code with Strict Mode
    • 5. Why Use let & const Over var
    • 6. Challenge: const & let
    • 7. How Const Improves Your Code
    • 8. Why Block Scoping Matters
    • 9. How Template Literals Improve Strings
    • 10. Challenge: Template Literals
    • 11. How Variables Should Be Named
  • Types & Conditionals
    • 1. Module Intro: Types & Conditionals
    • 2. Conditionally Run JavaScript Code
    • 3. Challenge: Your First Conditional
    • 4. Types and How They Can Be Changed
    • 5. Challenge: Types
    • 6. How to Shorten Conditionals with Ternaries
    • 7. Challenge: Ternaries
    • 8. Even Shorter Conditionals with Short-Circuiting
    • 9. Challenge: Short-Circuiting
  • Functions
    • 1. Module Intro: Functions
    • 2. Why We Need Functions
    • 3. Challenge: Your First Function
    • 4. What is a Closure and Why it Matters
    • 5. Challenge: Count Downwards Using Closure
    • 6. Better Functions with Default Parameters
    • 7. Shorter Functions with Arrow Functions
    • 8. Challenge: Arrow Functions
    • 9. Partial Application for Single-Responsibility Functions
    • 10. How Functions Should Be Named
  • Objects & Maps
    • 1. Module Intro: Objects & Maps
    • 2. Use Objects for Managing Key-Value Pairs
    • 3. Challenge: Your First Object
    • 4. Understand Primitive vs Object Types
    • 5. Get and Modify Object Data
    • 6. Easy Property Access with Destructuring
    • 7. Challenge: Object Destructuring
    • 8. Merge Objects with Object Spread
    • 9. How Maps Can Do What Objects Can't
    • 10. Challenge: Your First Map
    • 11. Improve Methods with Arrow Functions
  • Arrays & Sets
    • 1. Module Intro: Arrays
    • 2. Build Flexible Collections with Arrays
    • 3. Challenge: Your First Array
    • 4. Check Element Existence in Arrays
    • 5. Challenge: .some and .every
    • 6. Perform Actions on All Elements
    • 7. Get Subsets of Arrays
    • 8. Transform Arrays with .reduce()
    • 9. Challenge: Transform Arrays with .reduce()
    • 10. Understand the Power of .reduce()
    • 11. Avoid Mutations with Array Spread
    • 12. Mold Arrays with the Spread Operator
    • 13. More Flexible Arrays with Destructuring
    • 14. Challenge: Array Destructuring
    • 15. Turn Objects into Flexible Arrays
    • 16. Get Unique Sets of Data
    • 17. Use New, Immutable Array Features
  • Classes
    • 1. Module Intro: Classes
    • 2. What Are Constructor Functions?
    • 3. Challenge: Your First Constructor Function
    • 4. Understand the Prototype Chain
    • 5. Easy Prototypal Inheritance with Classes
    • 6. Challenge: Your First Class
    • 7. Share Class Features with Extends
    • 8. How To Get, Set and Simplify Classes
    • 9. Fix Context Problems with .bind()
  • DOM
    • 1. Module Intro: DOM
    • 2. What is the DOM?
    • 3. Get Single and Multiple Elements
    • 4. Creating and Modifying HTML Elements
    • 5. Challenge: Creating and Modifying HTML Elements
    • 6. Dynamically Add CSS Styles
    • 7. Understand and Work with Events
    • 8. Challenge: Events
  • Async JavaScript
    • 1. Module Intro: Async JavaScript
    • 2. The Problem with Callbacks
    • 3. Fix Callback Hell with Promises
    • 4. Make Network Requests with fetch()
    • 5. Challenge: Fetch API
    • 6. Dead-Simple Promises with async-await
    • 7. Catch Errors with async-await
    • 8. Challenge: async-await
  • Google Keep clone
    • 1. Module Intro: Google Keep Clone
    • 2. Google Keep - Project Setup
    • 3. Google Keep - Expanding and Closing Notes
    • 4. Google Keep - Storing Notes in the App
    • 5. Google Keep - Displaying Notes in the App
    • 6. Google Keep - Improving Functionality
    • 7. Google Keep - Editing Notes
    • 8. Google Keep - Changing Note Color
    • 9. Google Keep - Deleting Notes
    • 10. Google Keep - Storing Notes in the Browser
  • Essential concepts
    • 1. Module Intro: Essential Concepts
    • 2. Share App Code with Modules
    • 3. Challenge: Modules
    • 4. Know What 'this' is at Any Time
    • 5. Understand State and State Management
    • 6. How Reducers Help Manage State
    • 7. Avoid Imperative, Write Declarative Code
  • Hacker News clone
    • 1. Module Intro: Hacker News Clone
    • 2. Hacker News - Creating HTML and CSS
    • 3. Hacker News - Adding Pages
    • 4. Hacker News - Requesting Data from API Endpoint
    • 5. Hacker News - Formatting Stories
    • 6. Hacker News - Creating Separate Pages for Stories
    • 7. Hacker News - Formatting Comments
    • 8. Hacker News - Building a Store
    • 9. Hacker News - Toggling Stories in and out of Favorites
    • 10. Hacker News - Building the Favorites Page

Reviews

Start your review of JavaScript Deep Dive

Never Stop Learning.

Get personalized course recommendations, track subjects and courses with reminders, and more.

Someone learning on their laptop while sitting on the floor.