299 Chapters
Certificate on completion
Takeaway Skills
- Basic JavaScript
- ES6
- Regular Expressions
- Debugging
- Basic Data Structures
- Basic Algorithm Scripting
- Object Oriented Programming
- Functional Programming
- Intermediate Algorithm Scripting
- JavaScript Algorithms and Data Structures Projects
Course Content
1. BASIC JAVASCRIPT
- Comment Your JavaScript CodePreview
- Declare JavaScript Variables
- Storing Values with the Assignment Operator
- Assigning the Value of One Variable to Another
- Initializing Variables with the Assignment Operator
- Declare String Variables
- Understanding Uninitialized Variables
- Understanding Case Sensitivity in Variables
- Explore Differences Between the var and let Keywords
- Declare a Read-Only Variable with the const Keyword
- Add Two Numbers with JavaScript
- Subtract One Number from Another with JavaScript
- Multiply Two Numbers with JavaScript
- Divide One Number by Another with JavaScript
- Increment a Number with JavaScript
- Decrement a Number with JavaScript
- Create Decimal Numbers with JavaScript
- Multiply Two Decimals with JavaScript
- Divide One Decimal by Another with JavaScript
- Finding a Remainder in JavaScript
- Compound Assignment With Augmented Addition
- Compound Assignment With Augmented Subtraction
- Compound Assignment With Augmented Multiplication
- Compound Assignment With Augmented Division
- Escaping Literal Quotes in Strings
- Quoting Strings with Single Quotes
- Escape Sequences in Strings
- Concatenating Strings with Plus Operator
- Concatenating Strings with the Plus Equals Operator
- Constructing Strings with Variables
- Appending Variables to Strings
- Find the Length of a String
- Use Bracket Notation to Find the First Character in a String
- Understand String Immutability
- Use Bracket Notation to Find the Nth Character in a String
- Use Bracket Notation to Find the Last Character in a String
- Use Bracket Notation to Find the Nth-to-Last Character in a String
- Word Blanks
- Store Multiple Values in one Variable using JavaScript Arrays
- Nest one Array within Another Array
- Access Array Data with Indexes
- Modify Array Data With Indexes
- Access Multi-Dimensional Arrays With Indexes
- Manipulate Arrays With push()
- Manipulate Arrays With pop()
- Manipulate Arrays With shift()
- Manipulate Arrays With unshift()
- Shopping List
- Write Reusable JavaScript with Functions
- Passing Values to Functions with Arguments
- Return a Value from a Function with Return
- Global Scope and Functions
- Local Scope and Functions
- Global vs. Local Scope in Functions
- Understanding Undefined Value returned from a Function
- Assignment with a Returned Value
- Stand in Line
- Understanding Boolean Values
- Use Conditional Logic with If Statements
- Comparison with the Equality Operator
- Comparison with the Strict Equality Operator
- Practice comparing different values
- Comparison with the Inequality Operator
- Comparison with the Strict Inequality Operator
- Comparison with the Greater Than Operator
- Comparison with the Greater Than Or Equal To Operator
- Comparison with the Less Than Operator
- Comparison with the Less Than Or Equal To Operator
- Comparisons with the Logical And Operator
- Comparisons with the Logical Or Operator
- Introducing Else Statements
- Introducing Else If Statements
- Logical Order in If Else Statements
- Chaining If Else Statements
- Golf Code
- Selecting from Many Options with Switch Statements
- Adding a Default Option in Switch Statements
- Multiple Identical Options in Switch Statements
- Replacing If Else Chains with Switch
- Returning Boolean Values from Functions
- Return Early Pattern for Functions
- Counting Cards
- Build JavaScript Objects
- Accessing Object Properties with Dot Notation
- Accessing Object Properties with Bracket Notation
- Accessing Object Properties with Variables
- Updating Object Properties
- Add New Properties to a JavaScript Object
- Delete Properties from a JavaScript Object
- Using Objects for Lookups
- Testing Objects for Properties
- Manipulating Complex Objects
- Accessing Nested Objects
- Accessing Nested Arrays
- Record Collection
- Iterate with JavaScript While Loops
- Iterate with JavaScript For Loops
- Iterate Odd Numbers With a For Loop
- Count Backwards With a For Loop
- Iterate Through an Array with a For Loop
- Nesting For Loops
- Iterate with JavaScript Do...While Loops
- Replace Loops using Recursion
- Profile Lookup
- Generate Random Fractions with JavaScript
- Generate Random Whole Numbers with JavaScript
- Generate Random Whole Numbers within a Range
- Use the parseInt Function
- Use the parseInt Function with a Radix
- Use the Conditional (Ternary) Operator
- Use Multiple Conditional (Ternary) Operators
- Use Recursion to Create a Countdown
- Use Recursion to Create a Range of Numbers
2. ES6
- Compare Scopes of the var and let KeywordsPreview
- Mutate an Array Declared with const
- Prevent Object Mutation
- Use Arrow Functions to Write Concise Anonymous Functions
- Write Arrow Functions with Parameters
- Set Default Parameters for Your Functions
- Use the Rest Parameter with Function Parameters
- Use the Spread Operator to Evaluate Arrays In-Place
- Use Destructuring Assignment to Extract Values from Objects
- Use Destructuring Assignment to Assign Variables from Objects
- Use Destructuring Assignment to Assign Variables from Nested Objects
- Use Destructuring Assignment to Assign Variables from Arrays
- Use Destructuring Assignment with the Rest Parameter to Reassign Array Elements
- Use Destructuring Assignment to Pass an Object as a Function's Parameters
- Create Strings using Template Literals
- Write Concise Object Literal Declarations Using Object Property Shorthand
- Write Concise Declarative Functions with ES6
- Use class Syntax to Define a Constructor Function
- Use getters and setters to Control Access to an Object
- Create a Module Script
- Use export to Share a Code Block
- Reuse JavaScript Code Using import
- Use * to Import Everything from a File
- Create an Export Fallback with export default
- Import a Default Export
- Create a JavaScript Promise
- Complete a Promise with resolve and reject
- Handle a Fulfilled Promise with then
- Handle a Rejected Promise with catch
3. REGULAR EXPRESSIONS
- Using the Test MethodPreview
- Match Literal Strings
- Match a Literal String with Different Possibilities
- Ignore Case While Matching
- Extract Matches
- Find More Than the First Match
- Match Anything with Wildcard Period
- Match Single Character with Multiple Possibilities
- Match Letters of the Alphabet
- Match Numbers and Letters of the Alphabet
- Match Single Characters Not Specified
- Match Characters that Occur One or More Times
- Match Characters that Occur Zero or More Times
- Find Characters with Lazy Matching
- Find One or More Criminals in a Hunt
- Match Beginning String Patterns
- Match Ending String Patterns
- Match All Letters and Numbers
- Match Everything But Letters and Numbers
- Match All Numbers
- Match All Non-Numbers
- Restrict Possible Usernames
- Match Whitespace
- Match Non-Whitespace Characters
- Specify Upper and Lower Number of Matches
- Specify Only the Lower Number of Matches
- Specify Exact Number of Matches
- Check for All or None
- Positive and Negative Lookahead
- Check For Mixed Grouping of Characters
- Reuse Patterns Using Capture Groups
- Use Capture Groups to Search and Replace
- Remove Whitespace from Start and End
4. DEBUGGING
- Use the JavaScript Console to Check the Value of a VariablePreview
- Understanding the Differences between the freeCodeCamp and Browser Console
- Use typeof to Check the Type of a Variable
- Catch Misspelled Variable and Function Names
- Catch Unclosed Parentheses, Brackets, Braces and Quotes
- Catch Mixed Usage of Single and Double Quotes
- Catch Use of Assignment Operator Instead of Equality Operator
- Catch Missing Open and Closing Parenthesis After a Function Call
- Catch Arguments Passed in the Wrong Order When Calling a Function
- Catch Off By One Errors When Using Indexing
- Use Caution When Reinitializing Variables Inside a Loop
- Prevent Infinite Loops with a Valid Terminal Condition
5. BASIC DATA STRUCTURES
- Use an Array to Store a Collection of DataPreview
- Access an Array's Contents Using Bracket Notation
- Add Items to an Array with push() and unshift()
- Remove Items from an Array with pop() and shift()
- Remove Items Using splice()
- Add Items Using splice()
- Copy Array Items Using slice()
- Copy an Array with the Spread Operator
- Combine Arrays with the Spread Operator
- Check For The Presence of an Element With indexOf()
- Iterate Through All an Array's Items Using For Loops
- Create complex multi-dimensional arrays
- Add Key-Value Pairs to JavaScript Objects
- Modify an Object Nested Within an Object
- Access Property Names with Bracket Notation
- Use the delete Keyword to Remove Object Properties
- Check if an Object has a Property
- Iterate Through the Keys of an Object with a for...in Statement
- Generate an Array of All Object Keys with Object.keys()
- Modify an Array Stored in an Object
6. BASIC ALGORITHM SCRIPTING
- Convert Celsius to FahrenheitPreview
- Reverse a String
- Factorialize a Number
- Find the Longest Word in a String
- Return Largest Numbers in Arrays
- Confirm the Ending
- Repeat a String Repeat a String
- Truncate a String
- Finders Keepers
- Boo who
- Title Case a Sentence
- Slice and Splice
- Falsy Bouncer
- Where do I Belong
- Mutations
- Chunky Monkey
7. OBJECT ORIENTED PROGRAMMING
- Create a Basic JavaScript ObjectPreview
- Use Dot Notation to Access the Properties of an Object
- Create a Method on an Object
- Make Code More Reusable with the this Keyword
- Define a Constructor Function
- Use a Constructor to Create Objects
- Extend Constructors to Receive Arguments
- Verify an Object's Constructor with instanceof
- Understand Own Properties
- Use Prototype Properties to Reduce Duplicate Code
- Iterate Over All Properties
- Understand the Constructor Property
- Change the Prototype to a New Object
- Remember to Set the Constructor Property when Changing the Prototype
- Understand Where an Object’s Prototype Comes From
- Understand the Prototype Chain
- Use Inheritance So You Don't Repeat Yourself
- Inherit Behaviors from a Supertype
- Set the Child's Prototype to an Instance of the Parent
- Reset an Inherited Constructor Property
- Add Methods After Inheritance
- Override Inherited Methods
- Use a Mixin to Add Common Behavior Between Unrelated Objects
- Use Closure to Protect Properties Within an Object from Being Modified Externally
- Understand the Immediately Invoked Function Expression (IIFE)
- Use an IIFE to Create a Module
8. FUNCTIONAL PROGRAMMING
- Learn About Functional ProgrammingPreview
- Understand Functional Programming Terminology
- Understand the Hazards of Using Imperative Code
- Avoid Mutations and Side Effects Using Functional Programming
- Pass Arguments to Avoid External Dependence in a Function
- Refactor Global Variables Out of Functions
- Use the map Method to Extract Data from an Array
- Implement map on a Prototype
- Use the filter Method to Extract Data from an Array
- Implement the filter Method on a Prototype
- Return Part of an Array Using the slice Method
- Remove Elements from an Array Using slice Instead of splice
- Combine Two Arrays Using the concat Method
- Add Elements to the End of an Array Using concat Instead of push
- Use the reduce Method to Analyze Data
- Use Higher-Order Functions map, filter, or reduce to Solve a Complex Problem
- Sort an Array Alphabetically using the sort Method
- Return a Sorted Array Without Changing the Original Array
- Split a String into an Array Using the split Method
- Combine an Array into a String Using the join Method
- Apply Functional Programming to Convert Strings to URL Slugs
- Use the every Method to Check that Every Element in an Array Meets a Criteria
- Use the some Method to Check that Any Elements in an Array Meet a Criteria
- Introduction to Currying and Partial Application
9. INTERMEDIATE ALGORITHM SCRIPTING
- Sum All Numbers in a RangePreview
- Diff Two Arrays
- Seek and Destroy
- Wherefore art thou
- Spinal Tap Case
- Pig Latin
- Search and Replace
- DNA Pairing
- Missing letters
- Sorted Union
- Convert HTML Entities
- Sum All Odd Fibonacci Numbers
- Sum All Primes
- Smallest Common Multiple
- Drop it
- Steamroller
- Binary Agents
- Everything Be True
- Arguments Optional
- Make a Person
- Map the Debris