一、框架语言的趋势

  • React and Redux

    (1)React hook and 高阶组件
    函数式编程是随着React的流行收到越来越多的关注
    React中的高阶组件使用了高阶函数来实现,高阶函数就是函数式编程的一种特性。虽然React中使用了一 些函数式编程的特性,但它并不是纯函数式的。
    (2)Redux
    另外React中的一些生态,比如Redux,它使用了一些函数式编程的思想,所以,想要更好的学习React和Redux,就需要了解函数式编程。

  • Vue

    (1) Composition API and 高阶组件
    Vue3对Vue2做了很大的重构,而且越来越偏向函数式,在使用Vue3的CompositionAPI可以感受到,在Vue2的源码中,也大量使用了高阶函数,这些流行框架都在趋向于函数式编程,甚至可以说,可以不学这些框架,但是不能不了解函数式编程,因为这些才是永远不变的内容。

    二、工程化的优势

  • 打包过程中可以更好的利用tree shaking过滤无用代码

    三、业务代码上的实践

  • 单元测试:方便测试、方便并行处理

  • 第三方库:lodash、underscore、ramda
  • 解决this指向的困扰:

    (1)很多人在学习之前,都了解过面向对象的语言,比如说java, c#,c++等等,所在在学习Js的时候,也都是从面向对象开始的,通过学习原型、原型链、以及模拟实现继承的机制来实现面向对象的一些特性。
    (2)在学习的过程中,还会遇到this,在使用this的时候可能遇到各种各样的问题,在使用JavaScript来模拟面向对象的一些特性的时候,非常痛苦。以后,可以拥抱函数式编程,如果拥抱函数式编程甚至可以抛弃掉this。
    [

](https://blog.csdn.net/sinat_43095140/article/details/114903913)