JavaScript Deep Dive
Offered By: Scrimba
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 ProgrammingJohns 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