函数式编程范式:函数是一等公民

目录

如果有小伙伴想要回顾之前的知识的话,点击下面的链接查看之前所有的学习栏目👇:
《大前端学习专栏:目录》

什么是函数式编程

函数式编程(Functionnal Programming,FP)是一种编程范式。我们平时接触的最多的是面向对象式的编程范式,所以我们在学习JS或者是JAVA的时候最开始都是从面向对象的编程思维开始学习。
面向对象编程的思维方式是:将现实中的事物抽象成类、对象,并且由封装、继承多态来演示事物之间的关系。
然而函数式编程的思维方式正好就是面向对象思维方式反过来:将现实中的事物之间的关系抽象到程序世界,所以,函数式编程的函数,并不是程序中写的函数,而是数学中的函数,表示一种映射关系,如:y=f(x)。相同的结果必须要有相同的输出(纯函数)。
以下是一个简单的函数式编程实现:

//非函数式
let a = 1;
let b = 1;
let sum = a + b;
console.log(sum) //2

//函数式编程
const sum = (a,b) => a + b;
console.log(sum(1,1)) //2

为什么要学习函数式编程

其实函数式编程是一种非常古老的概念,在第一台计算机出现之前就已经有这种思维方式了。那为什么我们还要学习函数式编程呢?

  • React hooks的流行使函数式编程得到越来越多的关注
  • 函数式可以抛弃繁杂的this
  • Vue3开始拥抱函数式编程
  • 方便进行单元测试,单元管理

由此可见,函数式编程渐渐的成为了一种新趋势。

函数式一等公民

《MDN:First-class Function(头等函数)》在MDN中有这样的描述,函数是一等公民。

  1. 可以把函数赋值给一个变量:
const sum = (a,b) => a + b;
  1. 函数可以作为参数传递:
function sayHello() {
   return "Hello, ";
}

function greeting(helloMessage, name) {
  console.log(helloMessage() + name);
}

// 传递 `sayHello` 作为 `greeting` 函数的参数
greeting(sayHello, "JavaScript!"); // Hello, JavaScript!
  1. 函数可以作为另一个函数的返回值,之所以可以返回一个函数,是因为在 Javascript 中,函数可被作为值来对待。
function sayHello() {
   return function() {
      console.log("Hello!");
   }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱学习的前端小黄

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值