Learning Functional Programming with JavaScript ES6+

Learning Functional Programming with JavaScript ES6+

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. Shaun Wassell begins by explaining what functional programming is and how it compares to object-oriented programming. Shaun then covers the basics of working with first-class functions in JavaScript ES6+, discussing concepts such as higher-order functions and closure. He also shows how functional programming makes working with data structures more straightforward; dives into advanced concepts, including partial application and recursion; and provides challenges that can help you test your understanding of key functional programming concepts.

Topics include:

  • The goal of functional programming
  • Declarative vs. imperative programming
  • Ensuring immutability
  • Arrow functions in ES6
  • Passing functions as arguments
  • Mapping, filtering, slicing, sorting, and reducing
  • Advanced functional concepts, including recursion


  • 英文名称:Learning Functional Programming with JavaScript ES6+
  • 时长:2小时44分
  • 字幕:英语


  1. A functional approach to transform code
  2. What you should know
  3. Installing Node.js and npm
  4. Setting up the project
  5. Setting up the project: Hello World
  6. The goal of functional programming
  7. Declarative vs. imperative programming
  8. Immutability
  9. Separation of data and functions
  10. Object oriented to functional approach
  11. First-class functions
  12. Ensuring immutability: ESLint
  13. Ensuring immutability: Install ESLint
  14. Ensuring immutability: Finalize ESLint
  15. Arrow functions in ES6
  16. Functions as data
  17. Functions as data, continued
  18. Passing functions as arguments
  19. Returning functions
  20. Closure
  21. Implement private variable
  22. Higher-order functions
  23. JavaScript: Functional parts
  24. The spread operator
  25. Mapping
  26. Filtering
  27. Every/some
  28. Slicing
  29. Sorting
  30. Reducing
  31. Combining functions
  32. Challenge: Recreate the map function
  33. Solution: Recreate the map function
  34. Advanced functional concepts
  35. Currying and partial application
  36. Recursion
  37. Functions as objects
  38. Challenge: Convert array
  39. Solution: Convert array
  40. Challenge: Anagrams
  41. Solution: Anagrams
  42. Challenge: Error messages
  43. Solution: Error messages
  44. Next steps