为什么要学函数式编程

Yang 254

学函数式编程主要有以下几点原因:一、受react和reduxd的影响;二、vue3vue2做了很大的重构;三、函数式编程可以抛this;四、过滤无用的代码;五、方便测试;六、进行开发。函数式编程其实相对于计算机的历史而言是一个非常古老的概念,甚至早已名列前茅台计算机的诞生。

一、受react和reduxd的影响

函数式编程其实相对于计算机的历史而言是一个非常古老的概念,甚至早已名列前茅台计算机的诞生。他的演算并非设计在计算机上执行,而是在20世纪三十年代引入的一套用于研究函数定义,函数应用和递归的形式系统。

也就是说函数式编程已经是一个很老的概念了,那为什么我们还要学习他,其实函数式编程以前和前端没有任何关系,也并不流行。只是因为react和redux将它带火了。有了高阶函数,那么高阶函数就是函数式编程的一部分,所以才将函数式编程带火了。

函数式编程主要是用于研究函数的定义,函数的应用和递归的而这样一个形式的系统。

注意,函数式编程不是用函数来编程,也不是传统的面向过程编程,主旨在于将复杂的函数复合成简单的函数,运算过程尽量写成一系列嵌套的函数调用。大家注意区分用函数编程和函数式编程是不同的。

react的高阶组件,使用了高阶函数来实现,高阶函数就是函数式编程的一个特性,我们后面会学到。虽然react当中使用了一些函数式编程的特性,但它并不是纯函数式的。

另外react的一些生态,比如redux,它使用了函数式编程的一些思想,所以我们想要更好的学习react和redux的话,我们需要了解函数式编程。

二、vue3vue2做了很大的重构

vue3对vue2做了很大的重构,而且越来越偏向函数式,我们在使用vue3的一些api的时候可以感受到,在vue2的源码中也大量的时候到了高阶函数,这些流行框架都在趋向于函数式编程,我们甚至可以说你可以不学习这些框架,但是你不能不了解函数式编程。因为这些才是永远不变的内容。

三、函数式编程可以抛this

学习js之前可能都了解过面向对象的语言,比如说Java,C#以及C++等等,所以在学习js的时候,我们也都是从面向对象开始学习的,我们会通过学习原型,原型链以及模拟实现继承的机制来实现面向对象的一些特性。我们在学习的过程中还会遇到this的各种各样问题,如果我们用到函数式编程的时候,我们就可以抛弃掉this。

四、过滤无用的代码

使用函数式编程有很多的好处,比如说打包的时候可 以更好的利用tree-shaking来过滤无用的代码。

五、方便测试

使用函数式编程还可以方便测试,方便并行处理,这些都是由函数式编程的特性来决定的。

六、进行开发

还有很多库可以帮助我们进行函数式开发,比如说lodash,underscore,ramda。

延伸阅读

函数式编程的特点

函数式编程的特点包括:

  • 函数是一等公民,可以作为参数传递给另一个函数,也可以作为返回值。
  • 只用表达式,不用语句,表达式总是有返回值。
  • 没有副作用,即不修改全局变量或参数以外的变量。
  • 不可变性,即数据一旦创建就不能再被修改。
  • 引用透明性,即相同的输入永远得到相同的输出。

回复

我来回复
  • 暂无回复内容

注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部