1、可以避免this指向所带来的困扰
在面向对象编程的过程中,我们经常会因为this的指向问题,类似于C语言的指针,被困扰好久。在代码运行的过程中,需要想半天,this到底指向哪个对象。但函数式编程,可以避免这样的问题。因为函数式编程,调用者只需要关系函数的返回值。
2、代码简洁,快速开发
函数式编程大量使用函数,减少了代码的重复,因此程序比较短,开发速度较快。
3、方便的代码管理,方便调试
函数式编程不依赖、也不会改变外界的状态,只要给定输入参数,返回的结果必定相同。因此,每一个函数都可以被看做独立单元,很有利于进行单元测试(unit testing)和除错(debugging),以及模块化组合。
4、易于"并发编程"
函数式编程不需要考虑"死锁"(deadlock),因为它不修改变量,所以根本不存在"锁"线程的问题。不必担心一个线程的数据,被另一个线程修改,所以可以很放心地把工作分摊到多个线程,部署"并发编程"(concurrency)。
5、打包过程中可以更好的利用 tree shaking 过滤无用代码
在打包时,我们可以利用tree shaking对没有调用的函数进行过滤,减少代码量。
6、关注以及使用度高,很多大型框架也在使用函数式编程
函数式编程是随着 React 的流行受到越来越多的关注,Vue 3也开始拥抱函数式编程。