Learning Functional Programming with JavaScript ES6+
3h 9mIntermediate2025-01-10
Authors

Shaun Wassell
Full-Stack Software Developer
Course details
Want to write more robust, maintainable code? In this course, discover how this can be accomplished with functional programming, and learn about the functional concepts at the heart of many JavaScript frameworks and programs. Functional programming is a radically different way of writing code. While at first it may seem a bit counterintuitive, once you get comfortable with it, you may find that your code becomes much easier to maintain, as well as more performant. This course aims to teach you everything you need to know to start taking advantage of the incredible power of functional programming in your own code, starting with the basics and going all the way up to more advanced concepts such as recursion, partial application, currying, and more.
Learning objectives
Understand and apply the core concepts of functional programming.
Use first-class functions to improve the readability and flexibility of your code.
Manipulate array and object data using JavaScript's built-in functional utilities.
Take your functional programming knowledge to the next level with advanced concepts such as partial application, recursion, and memoization.
Learning objectives
Understand and apply the core concepts of functional programming.
Use first-class functions to improve the readability and flexibility of your code.
Manipulate array and object data using JavaScript's built-in functional utilities.
Take your functional programming knowledge to the next level with advanced concepts such as partial application, recursion, and memoization.
Skills covered
Ecma InternationalJavaScriptWeb Development ToolsProgramming FoundationsFront-End Web DevelopmentLearningWeb DevelopmentProgramming LanguagesSoftware Development
Concepts
0. Introduction
- 01 - Functional programming will change the way you think about code
- 02 - What you should know
- 03 - Basic setup
1. Introductory Functional Concepts
- 04 - The goal of functional programming
- 05 - Declarative vs. imperative programming
- 06 - Immutability
- 07 - Separation of data and functions
- 08 - Converting object-oriented to functional code
- 09 - First-class functions
- 10 - Ensuring immutability with ESLint
- 11 - Installing and setting up ESLint
- 12 - Ensuring immutability - Finalize ESLint
2. First-Class Functions
- 13 - JavaScript arrow function syntax
- 14 - Using functions as data
- 15 - Creating arrays of functions
- 16 - Passing functions as arguments
- 17 - Returning functions
- 18 - Understanding closure
- 19 - Higher-order functions
- 20 - Tour of CoderPad
- 21 - Solution - More higher-order functions
3. JavaScript Array Manipulation
- 22 - Basics of functional data manipulation
- 23 - The spread operator
- 24 - Using the map() function
- 25 - Using the filter() function
- 26 - Using the every() and some() functions
- 27 - Preventing mutation with the slice() function
- 28 - Using the sort() function
- 29 - Using the reduce() function
- 30 - Combining array functions
- 31 - Solution - Recreating the map() function
4. Advanced Functional Concepts
- 32 - Currying and partial application
- 33 - Recursion
- 34 - Memoization
5. Code Conversion Challenges
- 35 - Solution - Count occurrences
- 36 - Solution - Anagrams
Conclusion
- 37 - Next steps in your ES6+ journey