YoVDO

JavaScript Deep Dive

Offered By: Scrimba

Tags

Javascript Courses Web Development Courses Software Development Courses Object-oriented programming Courses Functional Programming Courses Asynchronous Programming Courses

Course Description

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

Related Courses

Advanced R Programming
Johns Hopkins University via Coursera
Building User Interfaces Using Functional React Components
NIIT StackRoute via Coursera
[Beta] Learn Advanced Python 3
Codecademy
Introduction to Functional Programming
Delft University of Technology via edX
Computing: Art, Magic, Science - Part II
ETH Zurich via edX